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`