Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
⊗csSpAqDe 174 of 509 menu
◀ ▶

DefaultIfEmpty в LINQ

Метод DefaultIfEmpty подставляет одно запасное значение, если предыдущий оператор не оставил ни одного элемента. Без него First на пустой последовательности бросит исключение.

Пустой массив после фильтра не даёт ни одного числа больше нуля. Вместо него подставляется аргумент по умолчанию:

int[] empty = []; var q = empty.Where(n => n > 0).DefaultIfEmpty(-1); Console.WriteLine(q.First());

Если фильтр что-то оставил, подмены не происходит. В массиве два положительных числа, оба равны 2. Первым будет 2, а всего таких чисел тоже 2:

int[] nums = [0, 2, 2, -1]; var q = nums.Where(n => n > 0).DefaultIfEmpty(-1); Console.WriteLine(q.First()); Console.WriteLine(q.Count());

Возьмите пустой список температур, подставьте запасное значение 0 и выведите его.

Выведите первое число больше пяти из списка оценок. Запасное значение появляться не должно.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить