Exercícios de C#

Agrupar alunos com LINQ em C#

Nesta lição, você vai agrupar os alunos por conceito e calcular a média de cada grupo com LINQ.

Introdução

O método GroupBy do LINQ divide uma lista em grupos com base em uma chave, como o conceito A ou B. Depois, você pode fazer cálculos separados para cada grupo, como contar, somar ou tirar a média.

GroupBy(s => s.Grade) divide os alunos nos grupos A e B, e OrderBy(g => g.Key) ordena os grupos pelo nome. Cada grupo tem a propriedade Key com o conceito e pode usar diretamente métodos LINQ como Average. O grupo A tem média 93.0 e o grupo B, 84.0.

Exemplo de C# executável

C#
Rodar 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 da execução
A: 93.0
B: 84.0

Pratique com o depurador

Coloque um breakpoint em uma atribuição ou condição importante, clique em Debug e veja os valores das variáveis locais antes de passar para a próxima linha.

Pratique com um desafio

Use o conteúdo desta lição para resolver um problema real. Cada desafio roda no navegador, com testes instantâneos e uma revisão por IA.

Todos os desafios