Middle
Koja je razlika između metoda FirstOrDefault i SingleOrDefault?
sobes.tech АИ
Одговор од АИ
FirstOrDefault() vraća prvi element sekvence koji zadovoljava uslov ili podrazumevanu vrednost (null za referentne tipove, 0 za numeričke tipove) ako takvih elemenata nema.
SingleOrDefault() vraća jedini element sekvence koji zadovoljava uslov ili podrazumevanu vrednost ako takvih nema. Ako ih ima više od jednog, baca se izuzetak InvalidOperationException.
| Osobina | FirstOrDefault | SingleOrDefault |
|---|---|---|
| Pronađeno 1+ elemenata | Vraća prvi | Baca izuzetak |
| Nije pronađen element | Vraća podrazumevanu vrednost | Vraća podrazumevanu vrednost |
| Očekivani broj | Nula ili više | Tačno jedan |
// Primer korišćenja FirstOrDefault
var numbers = new List<int> { 1, 2, 3, 4, 5 };
var evenNumber = numbers.FirstOrDefault(n => n % 2 == 0); // evenNumber će biti 2
var nonExistent = numbers.FirstOrDefault(n => n > 10); // nonExistent će biti 0
// Primer korišćenja SingleOrDefault
var singleNumber = new List<int> { 7 };
var result = singleNumber.SingleOrDefault(); // result će biti 7
var emptyList = new List<int>();
var defaultValue = emptyList.SingleOrDefault(); // defaultValue će biti 0
var multipleNumbers = new List<int> { 1, 2, 3 };
// var error = multipleNumbers.SingleOrDefault(); // Ovaj red će baciti InvalidOperationException