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
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));
}
}
70, 71Pratique com o depurador
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