Estou tentando usar o LINQ para criar um Dictionary<string, List<CustomObject>>
de a List<CustomObject>
. Posso fazer isso funcionar usando "var", mas não quero usar tipos anônimos. Aqui está o que eu tenho
var x = (from CustomObject o in ListOfCustomObjects
group o by o.PropertyName into t
select t.ToList());
Eu também tentei usar a Cast<>()
partir da biblioteca LINQ depois de terx
, mas recebo problemas de compilação com o objetivo de ser uma conversão inválida.
var
não está usando um tipo "anônimo", está usando um tipo "implícito". Tipos anônimos são novas classes criadas pelo compilador para manipular a construção new { thing = "stuff" };
. Tipos implícitos são classes existentes, var
é apenas uma maneira conveniente de referenciá-los quando a variável está sendo atribuída imediatamente; o tipo de variável pode ser deduzido do tipo de objeto que está sendo atribuído a ela. Você pode digitar até mesmo implicitamente uma variável referência a um tipo anônimo, ou seja:var a = new { thing = "stuff" };