Ejercicios de C#

Depurar una condición de filtro LINQ en C#

En esta lección vas a usar un punto de interrupción para ver cómo LINQ comprueba cada elemento y a corregir una condición de filtro incorrecta.

Introducción

Cuando una consulta LINQ no da el resultado esperado, puedes poner un punto de interrupción (breakpoint) en la función de condición para ver cada valor que se comprueba. Este ejercicio muestra un error muy común: confundir > y >= en el valor límite.

El aprobado empieza en 70, incluido el 70, así que la función IsPassing debe usar >= y no >. Si escribes score > 70, la nota 70 queda excluida por error. Con la condición corregida, el resultado es 70, 71. Pon un punto de interrupción en IsPassing y ejecuta en modo depuración para ver cómo LINQ llama a esta función para cada nota.

Ejemplo de C# ejecutable

C#
Ejecutar 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 de la ejecución
70, 71

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