Middle
Wat is het verschil tussen de methoden FirstOrDefault en SingleOrDefault?
sobes.tech AI
Antwoord van AI
FirstOrDefault() geeft het eerste element van de sequentie dat aan de voorwaarde voldoet, of een standaardwaarde (null voor referentietypen, 0 voor numerieke typen) als er geen dergelijke elementen zijn.
SingleOrDefault() geeft het enige element van de sequentie dat aan de voorwaarde voldoet, of een standaardwaarde als er geen dergelijke elementen zijn. Als er meer dan één is, wordt een InvalidOperationException gegenereerd.
| Kenmerk | FirstOrDefault | SingleOrDefault |
|---|---|---|
| 1+ elementen gevonden | Geeft het eerste terug | Gooi een uitzondering uit |
| Geen elementen gevonden | Geeft de standaardwaarde | Geeft de standaardwaarde |
| Verwachte hoeveelheid | Nul of meer | Precies één |
// Voorbeeld van gebruik van FirstOrDefault
var numbers = new List<int> { 1, 2, 3, 4, 5 };
var evenNumber = numbers.FirstOrDefault(n => n % 2 == 0); // evenNumber wordt 2
var nonExistent = numbers.FirstOrDefault(n => n > 10); // nonExistent wordt 0
// Voorbeeld van gebruik van SingleOrDefault
var singleNumber = new List<int> { 7 };
var result = singleNumber.SingleOrDefault(); // result wordt 7
var emptyList = new List<int>();
var defaultValue = emptyList.SingleOrDefault(); // defaultValue wordt 0
var multipleNumbers = new List<int> { 1, 2, 3 };
// var error = multipleNumbers.SingleOrDefault(); // Deze regel gooit een InvalidOperationException