Comment puis-je convertir List < object > Hashtable en C #?
Question
J'ai une liste d'objets, chacun contenant un identifiant, un code et une description.
Je dois convertir cette liste en table de hachage, en utilisant la Description comme clé et le Id en tant que valeur.
C’est pour que la table de hachage puisse ensuite être sérialisée en JSON.
Existe-t-il un moyen de convertir à partir de List < Object > accéder à Hashtable sans écrire une boucle pour parcourir chaque élément de la liste?
La solution
Supposons que votre liste contienne des objets de type Foo (avec un ID int et une chaîne Description).
Vous pouvez utiliser Linq pour transformer cette liste en un dictionnaire comme celui-ci:
var dict = myList.Cast<Foo>().ToDictionary(o => o.Description, o => o.Id);
Autres conseils
Si vous avez accès à Linq, vous pouvez utiliser le ToDictionary . fonction.
theList.ForEach(delegate(theObject obj) { dic.Add(obj.Id, obj.Description); });
Examinez également le System.Collections.ObjectModel.KeyedCollection < TKey, TItem &
. Cela semble correspondre mieux à ce que vous voulez faire.