2016-06-02 4 views
0

Ich fand dieses Beispiel der verschachtelten Gruppe von in linq. Wie würde es aussehen, wenn ich noch einen group by hinzufügen möchte?Wie man 3 verschachtelte Gruppe von in linq

var queryNestedGroups = 
     from student in students 
     group student by student.Year into newGroup1 
     from newGroup2 in 
      (from student in newGroup1 
      group student by student.LastName) 
     group newGroup2 by newGroup1.Key; 

Antwort

1

Zuerst lassen Sie einige Variablen der Beispielabfrage umbenennen:

var queryNestedGroups = 
    from e in source 
    group e by e.Key1 into g1 
    from e1 in 
     (from e in g1 
     group e by e.Key2) 
    group e1 by g1.Key; 

Jetzt können Sie eine weitere verschachtelte Gruppe Ebene mit dem gleichen Muster hinzuzufügen:

var queryNestedGroups = 
    from e in source 
    group e by e.Key1 into g1 
    from e1 in 
     (from e in g1 
     group e by e.Key2 into g2 
     from e2 in 
      (from e in g2 
      group e by e.Key3) 
     group e2 by g2.Key) 
    group e1 by g1.Key;