Junior — Middle
Wat zijn de verschillen tussen de methoden FirstOrDefault en SingleOrDefault in LINQ?
sobes.tech AI
Antwoord van AI
In LINQ worden de methoden FirstOrDefault en SingleOrDefault gebruikt om elementen uit een sequentie te halen, maar hebben ze verschillende betekenissen:
FirstOrDefaultgeeft het eerste element van de sequentie terug, als dat er is, anders geeft het de standaardwaarde (null voor referentietypen).SingleOrDefaultgeeft het enige element van de sequentie terug, als er precies één is, anders:- Als er geen elementen zijn, geeft het de standaardwaarde.
- Als er meer dan één zijn, gooit het een
InvalidOperationException.
Voorbeeld:
var numbers = new List<int> { 1, 2, 3 };
var first = numbers.FirstOrDefault(); // retourneert 1
var single = numbers.SingleOrDefault(); // gooit een uitzondering, omdat er meer dan één element is
var empty = new List<int>();
var firstEmpty = empty.FirstOrDefault(); // retourneert 0 (standaard voor int)
var singleEmpty = empty.SingleOrDefault(); // ook 0
var singleItem = new List<int> { 42 };
var singleValue = singleItem.SingleOrDefault(); // retourneert 42
Samenvatting:
- Gebruik
FirstOrDefaultals je het eerste element wilt krijgen of null als er geen zijn. - Gebruik
SingleOrDefaultals je precies één element verwacht en een fout wilt krijgen als er meer zijn.