Sobes.tech
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:

  • FirstOrDefault geeft het eerste element van de sequentie terug, als dat er is, anders geeft het de standaardwaarde (null voor referentietypen).
  • SingleOrDefault geeft 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 FirstOrDefault als je het eerste element wilt krijgen of null als er geen zijn.
  • Gebruik SingleOrDefault als je precies één element verwacht en een fout wilt krijgen als er meer zijn.