visual usas usar una sintaxis quĆ© query programaciĆ³n pasa operaciones hacer cuando consulta con basicas linq dictionary

usas - select in linq



Grupo LINQ por un objeto de diccionario (3)

No puedo comentar sobre @Michael Blackburn, pero supongo que obtuviste el voto a favor porque el GroupBy no es necesario en este caso.

Úselo como:

var lookupOfCustomObjects = listOfCustomObjects.ToLookup(o=>o.PropertyName); var listWithAllCustomObjectsWithPropertyName = lookupOfCustomObjects[propertyName]

Además, he visto esto funcionar mucho mejor que cuando uso GroupBy (). ToDictionary ().

Estoy intentando usar LINQ para crear un Dictionary<string, List<CustomObject>> de una List<CustomObject> . Puedo hacer que funcione con "var", pero no quiero usar tipos anónimos. Esto es lo que tengo

var x = (from CustomObject o in ListOfCustomObjects group o by o.PropertyName into t select t.ToList());

También intenté usar Cast<>() desde la biblioteca LINQ una vez que tengo x , pero obtengo problemas de compilación por el hecho de que no es válido.


Para @ atari2600, así es como se vería la respuesta usando ToLookup en la sintaxis lambda:

var x = listOfCustomObjects .GroupBy(o => o.PropertyName) .ToLookup(customObject => customObject);`

Básicamente, toma el IGrouping y lo materializa para usted en un diccionario de listas, con los valores de PropertyName como la clave.


Dictionary<string, List<CustomObject>> myDictionary = ListOfCustomObjects .GroupBy(o => o.PropertyName) .ToDictionary(g => g.Key, g => g.ToList());