Middle
Каква е разликата между методите FirstOrDefault и SingleOrDefault?
sobes.tech AI
Отговор от AI
FirstOrDefault() връща първия елемент от последователността, който отговаря на условието, или стойност по подразбиране (null за референтни типове, 0 за числови типове), ако такива елементи няма.
SingleOrDefault() връща единствения елемент от последователността, който отговаря на условието, или стойност по подразбиране, ако такива елементи няма. Ако има повече от един, се хвърля изключение InvalidOperationException.
| Особеност | FirstOrDefault | SingleOrDefault |
|---|---|---|
| Намерени 1+ елемента | Връща първия | Хвърля изключение |
| Не е намерен елемент | Връща стойност по подразбиране | Връща стойност по подразбиране |
| Очаквано количество | Нула или повече | Точно един |
// Пример за използване на FirstOrDefault
var numbers = new List<int> { 1, 2, 3, 4, 5 };
var evenNumber = numbers.FirstOrDefault(n => n % 2 == 0); // evenNumber ще бъде 2
var nonExistent = numbers.FirstOrDefault(n => n > 10); // nonExistent ще бъде 0
// Пример за използване на SingleOrDefault
var singleNumber = new List<int> { 7 };
var result = singleNumber.SingleOrDefault(); // result ще бъде 7
var emptyList = new List<int>();
var defaultValue = emptyList.SingleOrDefault(); // defaultValue ще бъде 0
var multipleNumbers = new List<int> { 1, 2, 3 };
// var error = multipleNumbers.SingleOrDefault(); // Тази линия ще хвърли InvalidOperationException