Exercícios de C#

Depurar um filtro LINQ em C#

Nesta lição, você vai usar um breakpoint para observar como o LINQ testa cada elemento e corrigir uma condição de filtro errada.

Introdução

Quando uma consulta LINQ não dá o resultado esperado, você pode colocar um ponto de parada (breakpoint) dentro da função de condição para observar cada valor testado. Este exercício mostra um erro muito comum: confundir > com >= no valor limite.

A nota de aprovação é a partir de 70, ou seja, inclui o próprio 70, então a função IsPassing precisa usar >= em vez de >. Se você escrever score > 70, a nota 70 é excluída por engano. Com a condição corrigida, o resultado é 70, 71. Coloque um breakpoint em IsPassing e execute no modo de depuração para ver o LINQ chamando essa função para cada nota.

Exemplo de C# executável

C#
Rodar código →
Program.cs
using System;
using System.Linq;
class Program
{
    static bool IsPassing(int score) => score >= 70;
    static void Main()
    {
        int[] scores = { 69, 70, 71 };
        var passing = scores.Where(IsPassing);
        Console.WriteLine(string.Join(", ", passing));
    }
}
Resultado da execução
70, 71

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