¿Cómo puedo convertir Lista < objeto > Hashtable en C #?
Pregunta
Tengo una lista de objetos, cada uno con una identificación, código y descripción.
Necesito convertir esta lista en una tabla hash, usando Descripción como clave e Id como valor.
Esto es así para que Hashtable se pueda serializar a JSON.
¿Hay alguna forma de convertir desde Lista < Objeto > a Hashtable sin escribir un bucle para revisar cada elemento de la lista?
Solución
Supongamos que su Lista contiene objetos de tipo Foo (con un Id int y una Descripción de cadena).
Puedes usar Linq para convertir esa lista en un Diccionario como este:
var dict = myList.Cast<Foo>().ToDictionary(o => o.Description, o => o.Id);
Otros consejos
Si tiene acceso a Linq, puede usar el ToDictionary función.
theList.ForEach(delegate(theObject obj) { dic.Add(obj.Id, obj.Description); });
Observe también el System.Collections.ObjectModel.KeyedCollection < TKey, TItem >
. Parece una mejor combinación para lo que quieres hacer.