Как я могу конвертировать список < object > в хеш-таблицу в C #?

StackOverflow https://stackoverflow.com/questions/166174

  •  03-07-2019
  •  | 
  •  

Вопрос

У меня есть список объектов, каждый из которых содержит Id, код и описание.

Мне нужно конвертировать этот список в Hashtable, используя Описание в качестве ключа и Id в качестве значения.

Это так, что Hashtable может быть сериализован в JSON.

Есть ли способ конвертировать из списка < Object > в Hashtable без написания цикла для просмотра каждого элемента в списке?

Это было полезно?

Решение

Предположим, что ваш список содержит объекты типа Foo (с int Id и строкой Description).

Вы можете использовать Linq, чтобы превратить этот список в словарь, например так:

var dict = myList.Cast<Foo>().ToDictionary(o => o.Description, o => o.Id);

Другие советы

Если у вас есть доступ к Linq, вы можете использовать ToDictionary функция.

theList.ForEach(delegate(theObject obj) { dic.Add(obj.Id, obj.Description); });

Также посмотрите System.Collections.ObjectModel.KeyedCollection < TKey, TItem > . Похоже, лучше подходит для того, что вы хотите сделать.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top