Метод FirstOrDefault из LINQ часто вводит в заблуждение разработчиков. Он берёт первый элемент из последовательности или выдаёт дефолтное значение типа, когда список пуст. Для структурных типов вроде int это 0, для ссылок null.
Возьмём пустой
List<int>. Вызов numbers.FirstOrDefault() отдаст 0, и если в бизнес-логике 0 значит нет данных, код сломается тихо.var numbers = new List<int>();
var result = numbers.FirstOrDefault(); // 0, а не то, что ожидали
Чтобы фиксить, проверяйте
Any() заранее или цепляйте DefaultIfEmpty(-1). Тогда для пустоты выйдет контролируемое значение, код станет предсказуемым.📍 Навигация: Вакансии • Задачи • Собесы
🐸Библиотека шарписта
#лучшее_из_библиотеки_2025