Come posso convertire List < object > a Hashtable in C #?
Domanda
Ho un elenco di oggetti, ognuno contenente un ID, un codice e una descrizione.
Devo convertire questo elenco in un Hashtable, usando Descrizione come chiave e ID come valore.
In questo modo Hashtable può quindi essere serializzato su JSON.
Esiste un modo per convertire da Elenco < Oggetto > su Hashtable senza scrivere un ciclo per esaminare tutti gli elementi dell'elenco?
Soluzione
Supponiamo che la tua lista contenga oggetti di tipo Foo (con un ID int e una descrizione stringa).
Puoi usare Linq per trasformare quella lista in un Dizionario come questo:
var dict = myList.Cast<Foo>().ToDictionary(o => o.Description, o => o.Id);
Altri suggerimenti
Se hai accesso a Linq, puoi utilizzare ToDictionary la funzione.
theList.ForEach(delegate(theObject obj) { dic.Add(obj.Id, obj.Description); });
Guarda anche System.Collections.ObjectModel.KeyedCollection < TKey, TItem >
. Sembra una corrispondenza migliore per quello che vuoi fare.