Sobes.tech
Middle

Kuo skiriasi metodai FirstOrDefault ir SingleOrDefault?

sobes.tech AI

Atsakymas iš AI

FirstOrDefault() grąžina pirmą sekos elementą, kuris atitinka sąlygą, arba numatytąją reikšmę (null nuorodų tipams, 0 skaitinių tipų atvejais), jei tokių elementų nėra.
SingleOrDefault() grąžina vienintelį sekos elementą, kuris atitinka sąlygą, arba numatytąją reikšmę, jei tokių nėra. Jei yra daugiau nei vienas, išmetama išimtis InvalidOperationException.

Savybė FirstOrDefault SingleOrDefault
Rasta 1+ elementų Grąžina pirmąjį Meta išimtį
Elementų nerasta Grąžina numatytąją reikšmę Grąžina numatytąją reikšmę
Tikėtinas kiekis Nulis ar daugiau Tik vienas
// Pavyzdys naudojant FirstOrDefault
var numbers = new List<int> { 1, 2, 3, 4, 5 };
var evenNumber = numbers.FirstOrDefault(n => n % 2 == 0); // evenNumber bus 2
var nonExistent = numbers.FirstOrDefault(n => n > 10);   // nonExistent bus 0

// Pavyzdys naudojant SingleOrDefault
var singleNumber = new List<int> { 7 };
var result = singleNumber.SingleOrDefault(); // result bus 7

var emptyList = new List<int>();
var defaultValue = emptyList.SingleOrDefault(); // defaultValue bus 0

var multipleNumbers = new List<int> { 1, 2, 3 };
// var error = multipleNumbers.SingleOrDefault(); // Šis eilutė išmes `InvalidOperationException`