Próbuję użyć LINQ, aby utworzyć Dictionary<string, List<CustomObject>>
z List<CustomObject>
. Mogę to uruchomić używając "var", ale nie chcę używać typów anonimowych. Oto co mam
var x = (from CustomObject o in ListOfCustomObjects
group o by o.PropertyName into t
select t.ToList());
Kiedyś próbowałem również użyć Cast<>()
z biblioteki LINQ x
, ale pojawiają się problemy z kompilacją, które powodują, że jest to nieprawidłowe rzutowanie.
var
nie jest typem „anonimowym”, lecz typem „niejawnym”. Typy anonimowe to nowe klasy utworzone przez kompilator do obsługi konstrukcji new { thing = "stuff" };
. Typy niejawne są istniejącymi klasami, var
są po prostu wygodnym sposobem na odwołanie się do nich, gdy zmienna jest przypisywana natychmiastowo, typ zmiennej można wywnioskować z typu przypisywanego do niej obiektu. Możesz nawet niejawnie wpisać zmienną odwołującą się do typu anonimowego, np .:var a = new { thing = "stuff" };