Ejercicios de C#

Agrupar estudiantes con LINQ en C#

En esta lección vas a agrupar estudiantes por calificación y a calcular la media de cada grupo con LINQ.

Introducción

El método GroupBy de LINQ divide una lista en grupos según una clave, como la calificación A o B. Después puedes hacer cálculos por separado en cada grupo, por ejemplo contar, sumar o calcular una media.

GroupBy(s => s.Grade) reparte a los estudiantes en los grupos A y B, y OrderBy(g => g.Key) ordena los grupos por nombre. Cada grupo tiene la propiedad Key, que contiene la calificación, y puede usar directamente métodos de LINQ como Average. El grupo A tiene una media de 93.0 y el grupo B de 84.0.

Ejemplo de C# ejecutable

C#
Ejecutar código →
Program.cs
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}");
    }
}
Resultado de la ejecución
A: 93.0
B: 84.0

Practica con el depurador

Pon un punto de interrupción en una asignación o condición importante, pulsa Debug y revisa los valores locales antes de pasar a la siguiente línea.

Practica con un reto

Usa lo que cubre esta lección para resolver un problema real. Cada reto se ejecuta en el navegador, con pruebas al instante y una revisión de IA.

Todos los retos