C#方法在索引中的List <T>中添加值

TyG*_*erX 18 c# indexing list add this

有什么办法可以在特定索引处添加值吗?我尝试做索引器,我有列表.在这种情况下,有没有任何技巧可以做到这一点: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
Run Code Online (Sandbox Code Playgroud)

Dav*_*vid 38

.Insert()方法上List<T>正是为了这个目的:

someList.Insert(2, someValue);
Run Code Online (Sandbox Code Playgroud)

这将修改someList集合以插入someValue索引2,将其他值推送到一个索引.

更多信息在这里.


Jon*_*eet 29

List<T>.Insert, 也许?

但我建议你可能只想获取/写入 - 而不是插入:

public Multime<T> this[int index]
{
    get { return Multisets[index]; }
    set { Multisets[index] = value; }
}
Run Code Online (Sandbox Code Playgroud)

请注意,从C#3开始,有更简单的方法来编写这些属性,顺便说一下:

public List<T> Multimea { get; set; }
public List<Multime<T>> Multisets { get; set; }
Run Code Online (Sandbox Code Playgroud)

实际上直接暴露组合集合通常也不是一个好主意 - 这意味着您无法控制这些集合中发生的事情.