Je sais qu’il est possible de convertir une liste de KeyValuePair dans un dictionnaire, mais existe-t-il un moyen rapide (en plus de faire un bouclage manuel) pour effectuer l’opération inverse?
Ce serait la manière manuelle,
foreach (KeyValuePair p in dict) { list.Add(new KeyValuePair(p.Key,p.Value)); }
Pas vraiment si mal mais j’étais juste curieux.
Pour convertir un Dictionary
en une List
vous pouvez simplement dire
var list = dictionary.ToList();
ou le plus verbeux
var list = dictionary.ToList>();
En effet, Dictionary
implémente IEnumerable
.
Utiliser linq:
myDict.ToList>();
Les éléments du dictionnaire sont des éléments KeyValuePair
.
Comme Jason l’a dit. Mais si vous n’avez pas vraiment besoin d’une liste, vous pouvez simplement la convertir en une ICollection
Pour .NET 2.0:
Dictionary dictionary = new Dictionary(); List> myList = new List>(dictionary);
J’ai essayé d’énumérer une instance d’Exception.Data qui est un IDictionary. C’est ce qui a finalement fonctionné:
ICollection keys = idict.Keys; foreach(var key in keys) { var value = idict[key]; Console.WriteLine("{0}: {1}", key, value); }