Comment obtenir dictionnaire des valeurs d'une liste générique
Je veux juste obtenir une liste à partir du Dictionnaire de valeurs, mais il 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 il ne fonctionne pas 🙁
- En quoi n'est-il pas de travail? Êtes-vous une erreur?
- Le dictionnaire est une collection de clés mappé à
List<MyType>
objets. Si vous avez plusieursList<MyType>
s dans le dictionnaire. Êtes-vous essayer de les aplatir toutes ces listes deMyType
s en un seul? - exécuter une boucle à travers le dictionnaire pour remplir une liste d'articles -- semble assez simple, je ne sais pas si il y a un pas moyen de le faire bien.
InformationsquelleAutor Florian | 2011-09-26
Vous devez vous connecter pour publier un commentaire.
Bien sûr, myDico.Valeurs est
List<List<MyType>>
.Utiliser Linq si vous voulez flattern vos listes
Values
seraitDictionary<string, List<MyType>>.ValueCollection
.Comment sur:
dic.Values.ToList()
vous genList<List<MyType>>
et pas un aplatir Liste. Cela n'est valable que pour une seule valeur sur chaque touche.Vous voulez probablement pour l'aplatir toutes les listes dans
Values
en une seule liste:Une autre variante:
Dictionary
contientList
s).Mon OneLiner:
it does not work
.D'aller plus loin sur la réponse de Slaks, si une ou plusieurs listes dans votre dictionnaire est null, un
System.NullReferenceException
sera levée lors de l'appel deToList()
, jouer en toute sécurité:Utiliser ceci:
Le problème, c'est que chaque clé dans votre dictionnaire est une liste d'instances de la valeur. Votre code devrait fonctionner, si chacun a exactement une instance de la valeur, comme dans l'exemple suivant:
Une autre variante vous pouvez également utiliser