Ich habe ein Objekt, das ungefähr so aussieht:
public class Student
{
public string Name { get; set; }
public int Grade { get; set; }
}
Ich möchte die folgende Abfrage erstellen: Gruppieren Sie die Noten nach Schülernamen, ordnen Sie jede Schülergruppe nach Noten und ordnen Sie die Gruppen nach der Höchstnote in jeder Gruppe.
So wird es aussehen:
A 100
A 80
B 80
B 50
B 40
C 70
C 30
Ich habe die folgende Abfrage erstellt:
StudentsGrades.GroupBy(student => student.Name)
.OrderBy(studentGradesGroup => studentGradesGroup.Max(student => student.Grade));
Aber das kehrt zurück IEnumerable
IGrouping
, und ich habe keine Möglichkeit, die Liste darin zu sortieren, es sei denn, ich mache das in einer anderen foreach
Abfrage und füge die Ergebnisse mit einer anderen Liste hinzu AddRange
.
Gibt es einen schöneren Weg, das zu tun?