Como posso converter List a Hashtable em C #?

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

  •  03-07-2019
  •  | 
  •  

Pergunta

Eu tenho uma lista de objetos, cada um contendo um Id, código e descrição.

Eu preciso converter essa lista em um Hashtable, usando Descrição como a chave e id como o valor.

Este é assim que o Hashtable pode ser serializado para JSON.

Existe uma maneira de converter de List a Hashtable sem escrever um loop para passar por cada item na lista?

Foi útil?

Solução

Vamos supor que sua lista contém objetos do tipo Foo (com um int Id e uma string Descrição).

Você pode usar Linq para transformar essa lista em um dicionário como este:

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

Outras dicas

Se você tem acesso a Linq, você pode usar o ToDictionary função.

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

Também olhar para o System.Collections.ObjectModel.KeyedCollection<TKey, TItem>. Parece que a melhor correspondência para o que você quer fazer.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top