eu tenho um
List<MyObject>
que recupero do banco de dados. No entanto, gostaria que fosse codificado por uma propriedade em MyObject para fins de agrupamento. Qual é a melhor maneira com o LINQ de lançar minha lista para:
Dictionary<long, List<MyObject>>
Eu tenho o seguinte:
myObjectList.ToDictionary(x => x.KeyedProperty)
Mas retorna:
Dictionary<long, MyObject>
Respostas:
Parece que você deseja agrupar as
MyObject
instâncias porKeyedProperty
e colocar esse agrupamento em umDictionary<long,List<MyObject>>
. Se sim, tente o seguintefonte
Você deve usar o
ToLookup
método de extensão naEnumerable
classe assim:Se quiser colocar isso em um dicionário, você pode usar o
ToDictionary
método de extensão , assim:fonte
ILookup
resposta preserva as referências e a resposta aceita, não?Lookup<TKey, TValue>
pode ser uma estrutura melhor do que aDictionary<TKey, TValue>
.ILookup
frequentemente seja a estrutura ideal no código, geralmente não é bem tratada para serialização.