2010-08-23 15 views
61

Tengo unLINQ - Convertir Lista de diccionario con Valor como lista

List<MyObject> 

que recuperar de la base de datos. Sin embargo, me gustaría tener una propiedad codificada por MyObject para agruparla. ¿Cuál es la mejor manera con LINQ a emitir mi lista a:

Dictionary<long, List<MyObject>> 

Tengo el siguiente:

myObjectList.ToDictionary(x => x.KeyedProperty) 

pero vuelve:

Dictionary<long, MyObject> 
+0

¿Quiere el diccionario relacionado con una propiedad de WHICH MyObject? - tienes una lista completa de ellos ... –

Respuesta

123

Suena como que desea agrupar las instancias MyObject por KeyedProperty y poner esa agrupación en Dictionary<long,List<MyObject>>. Si es así, intente lo siguiente

List<MyObject> list = ...; 
var map = list 
    .GroupBy(x => x.KeyedProperty) 
    .ToDictionary(x => x.Key, x => x.ToList()); 
Cuestiones relacionadas