tengo un
List<MyObject>
que recupero de la base de datos. Sin embargo, me gustaría que tuviera una propiedad en MyObject con fines de agrupación. ¿Cuál es la mejor manera con LINQ para enviar mi lista a:
Dictionary<long, List<MyObject>>
Tengo lo siguiente:
myObjectList.ToDictionary(x => x.KeyedProperty)
Pero vuelve:
Dictionary<long, MyObject>

Respuestas:
Parece que desea agrupar las
MyObjectinstanciasKeyedPropertyy poner esa agrupación en unDictionary<long,List<MyObject>>. Si es así, intente lo siguientefuente
Deberías usar el
ToLookupmétodo de extensión en laEnumerableclase así:Si desea colocar eso en un diccionario, entonces puede usar el
ToDictionarymétodo de extensión , así:fuente
ILookupConserva las referencias mientras que la respuesta aceptada no?Lookup<TKey, TValue>puede ser una estructura mejor que aDictionary<TKey, TValue>.ILookupmenudo es la estructura ideal en el código, a menudo no se maneja bien para la serialización.