Sobes.tech
Back to questions
Junior — Middle
78

Какая разница между методами First и FirstOrDefault в LINQ при получении элементов коллекции?

Answer from AI

sobes.tech AI

В LINQ методы First и FirstOrDefault используются для получения первого элемента из коллекции, но отличаются поведением при отсутствии подходящих элементов:

  • First() возвращает первый элемент коллекции, удовлетворяющий условию. Если таких элементов нет, выбрасывает исключение InvalidOperationException.

  • FirstOrDefault() также возвращает первый подходящий элемент, но если элементов нет, возвращает значение по умолчанию для типа (например, null для ссылочных типов, 0 для числовых).

Пример:

var numbers = new List<int> { 1, 2, 3 };

int first = numbers.First(n => n > 3); // выбросит исключение
int firstOrDefault = numbers.FirstOrDefault(n => n > 3); // вернет 0

Используйте FirstOrDefault, если хотите избежать исключений при отсутствии элементов.