31

特定のインデックスに値を追加する方法はありますか?私はインデクサーをしようとしていますが、リストがあります。この文脈でこれを作るためのトリックはありますか: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
4

5 に答える 5

62

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

someList.Insert(2, someValue);

これにより、someListコレクションが変更されてインデックスに挿入someValueされ2、他の値が1つのインデックスにプッシュされます。

詳細はこちら

于 2012-04-23T17:08:07.510 に答える
33

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; }

また、一般的に、構成されたコレクションを実際に直接公開することはお勧めできません。つまり、これらのコレクションで何が行われるかを制御することはできません。

于 2012-04-23T17:06:55.513 に答える
1

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

于 2012-04-23T17:07:04.823 に答える
1

使ってみてくださいList.Insert

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

于 2012-04-23T17:07:58.617 に答える
-2

辞書や地図のようなものを探しているかもしれません。これらは、キーと値のペアを使用してオブジェクトを割り当てることができるコレクションのタイプであるため、常に特定の位置にオブジェクトを割り当て、その同じ位置からオブジェクトを取得できます。保存するレコードの数がわからないため、リストが必要だと思うかもしれませんが、レコードの最大数をある程度把握している場合は、辞書のようなものを使用できるかどうかを判断するのに役立ちます。制限はかなり高いと思いますが、Dictionaryクラスを見て制限を確認できます。

于 2018-12-17T22:11:10.070 に答える