Middle
Mis vahe on meetoditel FirstOrDefault ja SingleOrDefault?
sobes.tech AI
Vastus AI-lt
FirstOrDefault() tagastab esimese järjestuse elemendi, mis vastab tingimusele, või vaikimisi väärtuse (null viitelüpsuste tüüpide jaoks, 0 arvutüüpi jaoks), kui selliseid elemente ei ole.
SingleOrDefault() tagastab üksiku järjestuse elemendi, mis vastab tingimusele, või vaikimisi väärtuse, kui selliseid elemente ei ole. Kui elemente on rohkem kui üks, visatakse välja InvalidOperationException.
| Omadus | FirstOrDefault | SingleOrDefault |
|---|---|---|
| Leitud 1+ elementi | Tagastab esimese | Viskab välja erandi |
| Elemente ei leidu | Tagastab vaikimisi väärtuse | Tagastab vaikimisi väärtuse |
| Oodatav arv | Null või rohkem | Täpselt üks |
// Näide kasutamisest FirstOrDefault
var numbers = new List<int> { 1, 2, 3, 4, 5 };
var evenNumber = numbers.FirstOrDefault(n => n % 2 == 0); // evenNumber on 2
var nonExistent = numbers.FirstOrDefault(n => n > 10); // nonExistent on 0
// Näide kasutamisest SingleOrDefault
var singleNumber = new List<int> { 7 };
var result = singleNumber.SingleOrDefault(); // result on 7
var emptyList = new List<int>();
var defaultValue = emptyList.SingleOrDefault(); // defaultValue on 0
var multipleNumbers = new List<int> { 1, 2, 3 };
// var error = multipleNumbers.SingleOrDefault(); // See rida viskab välja InvalidOperationException