У меня есть объект, который выглядит примерно так:
public class Student
{
    public string Name { get; set; } 
    public int Grade { get; set; }
}
Я хотел бы создать следующий запрос: групповые оценки по имени студента, упорядочить каждую группу студентов по классам и группы заказов по максимальному классу в каждой группе.
Итак, это будет выглядеть так:
A 100
A 80
B 80
B 50
B 40
C 70
C 30
Я создал следующий запрос:
StudentsGrades.GroupBy(student => student.Name)
    .OrderBy(studentGradesGroup => studentGradesGroup.Max(student => student.Grade));
Но это возвращает IEnumerable IGrouping, и я не могу сортировать список внутри, если только я не делаю этого в другом запросе foreach и добавляю результаты в другой список, используя AddRange.
Есть ли более красивый способ сделать это?