Sobes.tech
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