Я бы хотел сгруппировать студентов по классам. Без необходимости группировать их, используя запрос linq каждый раз. Есть ли лучший способ сделать это в компонентах Blazor?
Я получаю список учеников с их оценками
public class StudentData
{
String Name {get; set;}
String Grade {get; set;}
}
List<StudentData> StudentsGrades = StudentService.GetAll();
Затем группирую их вместе, используя linq
IOrderedEnumerable<IGrouping<String, StudentData>> StudentGroupedGrades =
from student in StudentsGrades
group student by student.Grades into groupedGrades
orderby groupedGrades.Key
select groupedGrades;
И перебираю сгруппированные оценки.
@foreach (var gradeGroup in StudentGroupedGrades)
{
<div class="group">
<h2>@gradeGroup.Key</h2>
@foreach (var studentData in gradeGroup)
{
<div class="student">
<h4>@studentData.Name</h4>
</div>
}
</div>
}
Результат показан
A
Sam Hill
Jill Jones
John Smith
B
Ben Row
Steven Williams
ect...