Estoy tratando de usar LINQ para crear un Dictionary<string, List<CustomObject>>
de a List<CustomObject>
. Puedo hacer que esto funcione usando "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é usarlo Cast<>()
desde la biblioteca LINQ una vez que lo hice x
, pero tengo problemas de compilación en el sentido de que es un molde inválido.
var
no es usar un tipo "anónimo", es usar un tipo "implícito". Los tipos anónimos son nuevas clases creadas por el compilador para manejar la construcción new { thing = "stuff" };
. Los tipos implícitos son clases existentes, var
es solo una forma conveniente de referenciarlos cuando la variable se asigna de inmediato, el tipo de variable se puede inferir del tipo del objeto que se le asigna. Incluso puede escribir implícitamente una variable que hace referencia a un tipo anónimo, es decir:var a = new { thing = "stuff" };