Я видел несколько примеров вложенных групп, например, Студенты , где студенты группируются сначала по годам, а затем по фамилии:
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;
, а затем они перебирают циклы для извлечения значения
foreach (var outerGroup in queryNestedGroups)
{
Console.WriteLine($"DataClass.Student Level = {outerGroup.Key}");
foreach (var innerGroup in outerGroup)
{
Console.WriteLine($"\tNames that begin with: {innerGroup.Key}");
foreach (var innerGroupElement in innerGroup)
{
Console.WriteLine($"\t\t{innerGroupElement.LastName} {innerGroupElement.FirstName}");
}
}
}
Я понимаю, как это работает до сих пор, но в моем случае мне нужно добавить дополнительную группировку, допустим, по FirstName. Я пробовал что-то вроде ниже, но безрезультатно. Можно ли посоветовать, пожалуйста?
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)
from newGroup3 in
(from student in newGroup2
group student by student.FirstName)
group newGroup3 by newGroup2.Key;
Я также пытался поместить третью вложенную группу во вторую, но тогда я даже не могу построить проект. Любая помощь будет высоко ценится.