web-dev-qa-db-ja.com

インデックスでList <T>に値を追加するC#の方法

特定のインデックスに値を追加する方法はありますか?インデクセータを実行しようとすると、リストがあります。このコンテキストでこれを行うためのトリックはありますか:D

 public class Multime<T>
{
    private List<Multime<T>> multiSets;
    private List<T> multimea;


    ***public Multime<T> this[int index]
    {
        get { return this.Multisets.ElementAt(index); }
        set { this.Multisets.CopyTo(value,index); }
    }***



    public List<Multime<T>> Multisets
    {
        get { return this.multiSets; }
        set { this.multiSets = value; }
    }//accesori Multimea de multimi

    public List<T> Multimea
    {
        get { return this.multimea; }
        set { this.multimea = value; }
    }//Accesori Multime
17
TyGerX

List<T>.Insert 、おそらく?

ただし、挿入ではなく、単にフェッチ/書き込みを行うことをお勧めします。

public Multime<T> this[int index]
{
    get { return Multisets[index]; }
    set { Multisets[index] = value; }
}

C#3の時点で、これらのプロパティを記述する簡単な方法があることに注意してください。

public List<T> Multimea { get; set; }
public List<Multime<T>> Multisets { get; set; }

また、一般に、構成されたコレクションを実際に直接公開することはお勧めできません。これは、これらのコレクションで何が起こるかを制御できないことを意味します。

29
Jon Skeet

_List<T>_の.Insert()メソッドは、まさにこの目的のためです。

_someList.Insert(2, someValue);
_

これは、someListコレクションを変更して、インデックス_2_にsomeValueを挿入し、他の値を1つのインデックスに押し上げます。

詳細情報 こちら

34
David

List.Insert を使用できますか?

1
Matthew

List.Insertを使用してみてください

これはあなたが抱えている問題を解決するはずです。