Junior — Middle
Care sunt diferențele dintre metodele FirstOrDefault și SingleOrDefault în LINQ?
sobes.tech AI
Răspuns de la AI
În LINQ, metodele FirstOrDefault și SingleOrDefault sunt utilizate pentru a selecta elemente dintr-o secvență, dar au semnificații diferite:
FirstOrDefaultreturnează primul element al secvenței, dacă există, altfel returnează valoarea implicită (null pentru tipuri de referință).SingleOrDefaultreturnează singurul element al secvenței, dacă există exact unul, altfel:- Dacă nu există elemente, returnează valoarea implicită.
- Dacă există mai multe, aruncă o excepție
InvalidOperationException.
Exemplu:
var numbers = new List<int> { 1, 2, 3 };
var first = numbers.FirstOrDefault(); // va returna 1
var single = numbers.SingleOrDefault(); // va arunca o excepție, deoarece există mai mult de un element
var empty = new List<int>();
var firstEmpty = empty.FirstOrDefault(); // va returna 0 (implicit pentru int)
var singleEmpty = empty.SingleOrDefault(); // de asemenea va returna 0
var singleItem = new List<int> { 42 };
var singleValue = singleItem.SingleOrDefault(); // va returna 42
Rezumat:
- Folosiți
FirstOrDefaultcând doriți să obțineți primul element sau null dacă nu există elemente. - Folosiți
SingleOrDefaultcând așteptați exact un element și doriți să primiți o eroare dacă există mai mult de unul.