92 votes

Comment obtenir les valeurs du dictionnaire sous forme de liste générique

Je veux juste obtenir une liste à partir des valeurs du dictionnaire mais ce n'est pas si simple qu'il y paraît !

voici le code :

 Dictionary<string, List<MyType>> myDico = GetDictionary();
List<MyType> items = ???

J'essaie :

 List<MyType> items = new List<MyType>(myDico.values)

Mais ça ne marche pas :-(

132voto

Slicedbread Points 1810

Que diriez-vous:

 var values = myDico.Values.ToList();

77voto

VdesmedT Points 6831

Bien sûr, myDico.Values est List<List<MyType>> .

Utilisez Linq si vous voulez aplanir vos listes

 var items = myDico.SelectMany (d => d.Value).ToList();

32voto

SLaks Points 391154

Vous voudrez probablement aplatir toutes les listes de Values en une seule liste :

 List<MyType> allItems = myDico.Values.SelectMany(c => c).ToList();

30voto

shoma13 Points 269

Autre variante :

     List<MyType> items = new List<MyType>();
    items.AddRange(myDico.values);

19voto

Mathias Vetsch Points 129

Mon OneLiner :

 var MyList = new List<MyType>(MyDico.Values);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X