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
MyObject
instanciasKeyedProperty
y poner esa agrupación en unDictionary<long,List<MyObject>>
. Si es así, intente lo siguientefuente
Deberías usar el
ToLookup
método de extensión en laEnumerable
clase así:Si desea colocar eso en un diccionario, entonces puede usar el
ToDictionary
método de extensión , así:fuente
ILookup
Conserva las referencias mientras que la respuesta aceptada no?Lookup<TKey, TValue>
puede ser una estructura mejor que aDictionary<TKey, TValue>
.ILookup
menudo es la estructura ideal en el código, a menudo no se maneja bien para la serialización.