Ich versuche, LINQ zu verwenden, um ein Dictionary<string, List<CustomObject>>
aus einem zu erstellen List<CustomObject>
. Ich kann dies mit "var" zum Laufen bringen, aber ich möchte keine anonymen Typen verwenden. Hier ist was ich habe
var x = (from CustomObject o in ListOfCustomObjects
group o by o.PropertyName into t
select t.ToList());
Ich habe auch versucht, Cast<>()
die LINQ-Bibliothek zu verwenden, sobald ich sie habe x
, aber ich bekomme Kompilierungsprobleme, die dazu führen, dass es sich um eine ungültige Besetzung handelt.
var
kein "anonymer" Typ verwendet, sondern ein "impliziter" Typ. Anonyme Typen sind neue Klassen, die vom Compiler erstellt wurden, um die Konstruktion zu handhaben new { thing = "stuff" };
. Implizite Typen sind vorhandene Klassen. Dies var
ist nur eine bequeme Möglichkeit, sie zu referenzieren, wenn die Variable sofort zugewiesen wird. Der Variablentyp kann aus dem Typ des ihr zugewiesenen Objekts abgeleitet werden. Sie können sogar implizit eine Variable eingeben, die auf einen anonymen Typ verweist, dh:var a = new { thing = "stuff" };