Упражнения C#

Отладка условия фильтра LINQ в C#

В этом уроке вы с помощью точки останова посмотрите, как LINQ проверяет каждый элемент, и исправите неверное условие фильтра.

Введение

Если запрос LINQ даёт не тот результат, можно поставить точку останова (breakpoint) в функцию условия и посмотреть каждое проверяемое значение. Это упражнение показывает очень частую ошибку: путаницу между > и >= на граничном значении.

Зачёт начинается с 70 включительно, поэтому функция IsPassing должна использовать >=, а не >. Если написать score > 70, балл 70 по ошибке не попадёт в результат. С исправленным условием результат 70, 71. Поставьте точку останова в IsPassing и запустите отладку, чтобы увидеть, как LINQ вызывает эту функцию для каждого балла.

Пример на C#, который можно запустить

C#
Запустить код →
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));
    }
}
Результат выполнения
70, 71

Практика с отладчиком

Поставьте точку останова на важное присваивание или условие, нажмите Debug и посмотрите локальные значения, прежде чем перейти к следующей строке.

Попрактикуйтесь на задаче

Примените материал этого урока к реальной задаче. Каждая задача запускается в браузере, с мгновенными тестами и разбором от ИИ.

Все задачи