web-dev-qa-db-fra.com

Manière C # d'ajouter de la valeur dans une liste <T> à l'index

Existe-t-il un moyen d'ajouter une valeur à un index spécifique? J'essaie de faire de l'indexateur et j'ai des listes. Y at-il une astuce pour faire cela dans ce contexte: 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 , peut-être?

Mais je suggérerais que vous vouliez probablement juste chercher/écrire - ne pas insérer:

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

Notez qu'en C # 3, il existe des moyens plus simples d'écrire ces propriétés, en passant:

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

Il n’est généralement pas judicieux d’exposer directement les collections composées, cela signifie que vous n’avez aucun contrôle sur ce qui se passe dans ces collections.

23
Jon Skeet

La méthode .Insert() sur List<T> est exactement conçue pour cela:

someList.Insert(2, someValue);

Cela modifierait la collection someList pour insérer someValue à index 2, en augmentant les valeurs d'un index.

Plus d'informations ici .

28
David

Essayez d'utiliser List.Insert

Cela devrait résoudre le problème que vous rencontrez.

1

Pouvez-vous utiliser List.Insert ?

0
Matthew