Raggruppare gli studenti con LINQ in C#
In questa lezione raggrupperai gli studenti in base al giudizio e calcolerai la media di ogni gruppo con LINQ.
Introduzione
Il metodo GroupBy di LINQ divide una lista in gruppi in base a una chiave, come il giudizio A o B. Poi puoi fare calcoli separati per ogni gruppo, come contare, sommare o fare la media.
GroupBy(s => s.Grade) divide gli studenti nei gruppi A e B, e OrderBy(g => g.Key) ordina i gruppi per nome. Ogni gruppo ha la proprietà Key con il giudizio e può usare direttamente metodi LINQ come Average. Il gruppo A ha una media di 93.0, il gruppo B di 84.0.
Esempio C# eseguibile
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.0Esercitati con il debugger
Esercitati con una sfida
Usa ciò che questa lezione spiega per risolvere un problema reale. Ogni sfida gira nel browser, con test immediati e una revisione dell'IA.
Tutte le sfide