Как преобразовать List <object> в Hashtable в С#?
У меня есть список объектов, каждый из которых содержит идентификатор, код и описание.
Мне нужно преобразовать этот список в Hashtable, используя Описание в качестве ключа и Id в качестве значения.
Таким образом, Hashtable может быть сериализована для JSON.
Есть ли способ конвертировать из List <Object> в Hashtable без написания цикла для прохождения каждого элемента в списке?
Ответы
Ответ 1
Предположим, что ваш список содержит объекты типа Foo (с идентификатором int и строкой Описание).
Вы можете использовать Linq для преобразования этого списка в словарь следующим образом:
var dict = myList.Cast<Foo>().ToDictionary(o => o.Description, o => o.Id);
Ответ 2
Если у вас есть доступ к Linq, вы можете использовать функцию ToDictionary.
Ответ 3
theList.ForEach(delegate(theObject obj) { dic.Add(obj.Id, obj.Description); });
Ответ 4
Также посмотрите на System.Collections.ObjectModel.KeyedCollection<TKey, TItem>
. Похоже, лучше подходит для того, что вы хотите сделать.