Regrouper des élèves avec LINQ en C#
Dans cette leçon, vous allez regrouper des élèves par mention et calculer la moyenne de chaque groupe avec LINQ.
Introduction
La méthode GroupBy de LINQ divise une liste en groupes selon une clé, comme la mention A ou B. Vous pouvez ensuite faire des calculs séparés pour chaque groupe, par exemple compter, additionner ou calculer une moyenne.
GroupBy(s => s.Grade) répartit les élèves dans les groupes A et B, et OrderBy(g => g.Key) trie les groupes par nom. Chaque groupe possède la propriété Key, qui contient la mention, et peut utiliser directement des méthodes LINQ comme Average. Le groupe A a une moyenne de 93.0, le groupe B de 84.0.
Exemple C# exécutable
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.0S'entraîner avec le débogueur
S'entraîner avec un défi
Utilisez le contenu de cette leçon pour résoudre un vrai problème. Chaque défi s'exécute dans le navigateur, avec des tests instantanés et une revue par l'IA.
Tous les défis