Schüler mit LINQ gruppieren in C#
In dieser Lektion gruppierst du Schüler mit LINQ nach ihrer Note und berechnest den Durchschnitt jeder Gruppe.
Einführung
Die LINQ-Methode GroupBy teilt eine Liste anhand eines Schlüssels in Gruppen, etwa nach der Note A oder B. Danach kannst du für jede Gruppe eigene Berechnungen durchführen, zum Beispiel zählen, summieren oder den Durchschnitt bilden.
GroupBy(s => s.Grade) teilt die Schüler in die Gruppen A und B, und OrderBy(g => g.Key) sortiert die Gruppen nach ihrem Namen. Jede Gruppe hat die Eigenschaft Key mit der Note und kann LINQ-Methoden wie Average direkt verwenden. Gruppe A hat einen Durchschnitt von 93.0, Gruppe B von 84.0.
Ausführbares C#-Beispiel
using System;
using System.Linq;
record Student(string Name, string Grade, int Score);
class Program
{
static void Main()
{
var students = new[] { new Student("Ada", "A", 95), new Student("Lin", "B", 84), new Student("Grace", "A", 91) };
foreach (var group in students.GroupBy(s => s.Grade).OrderBy(g => g.Key))
Console.WriteLine($"{group.Key}: {group.Average(s => s.Score):F1}");
}
}
A: 93.0
B: 84.0Mit dem Debugger üben
Mit einer Challenge üben
Nutze den Inhalt dieser Lektion, um ein echtes Problem zu lösen. Jede Challenge läuft im Browser, mit sofortigen Tests und einem KI-Review.
Alle Challenges