webentwicklung-frage-antwort-db.com.de

Auf diese Weise können Sie einen Wert in einer Liste <T> am Index hinzufügen

Gibt es eine Möglichkeit, einen Wert an einem bestimmten Index hinzuzufügen? Ich versuche Indexator zu machen und ich habe Listen. Gibt es einen Trick, um dies in diesem Zusammenhang zu erreichen: 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
14
TyGerX

List<T>.Insert vielleicht?

Aber ich würde vorschlagen, dass Sie wahrscheinlich nur abrufen/schreiben möchten - nicht einfügen:

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

Beachten Sie, dass es seit C # 3 einfachere Methoden gibt, diese Eigenschaften zu schreiben. Übrigens:

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

Es ist im Allgemeinen auch keine gute Idee, zusammengesetzte Sammlungen direkt zu veröffentlichen. Dies bedeutet, dass Sie keinen Einfluss darauf haben, was in diesen Sammlungen passiert.

23
Jon Skeet

Die .Insert()-Methode in List<T> dient genau diesem Zweck:

someList.Insert(2, someValue);

Dies würde die someList-Auflistung so ändern, dass someValue am Index 2 eingefügt wird, wodurch andere Werte um einen Index nach oben verschoben werden.

Weitere Informationen hier .

28
David

Versuchen Sie es mit List.Insert

Dies sollte das Problem lösen, das Sie haben.

Kannst du List.Insert verwenden?

0
Matthew