Sobes.tech
Middle

Care este diferența dintre metodele FirstOrDefault și SingleOrDefault?

sobes.tech AI

Răspuns de la AI

FirstOrDefault() returnează primul element din secvență care satisface condiția sau valoarea implicită (null pentru tipuri de referință, 0 pentru tipuri numerice), dacă astfel de elemente nu există.
SingleOrDefault() returnează singurul element din secvență care satisface condiția sau valoarea implicită dacă nu există astfel de elemente. Dacă există mai mult de unul, se aruncă o excepție InvalidOperationException.

Caracteristică FirstOrDefault SingleOrDefault
Se găsesc 1+ elemente Returnează primul Aruncă excepție
Nu se găsesc elemente Returnează valoarea implicită Returnează valoarea implicită
Cantitatea așteptată Zero sau mai mult Exact unul
// Exemplu de utilizare FirstOrDefault
var numbers = new List<int> { 1, 2, 3, 4, 5 };
var evenNumber = numbers.FirstOrDefault(n => n % 2 == 0); // evenNumber va fi 2
var nonExistent = numbers.FirstOrDefault(n => n > 10);   // nonExistent va fi 0

// Exemplu de utilizare SingleOrDefault
var singleNumber = new List<int> { 7 };
var result = singleNumber.SingleOrDefault(); // result va fi 7

var emptyList = new List<int>();
var defaultValue = emptyList.SingleOrDefault(); // defaultValue va fi 0

var multipleNumbers = new List<int> { 1, 2, 3 };
// var error = multipleNumbers.SingleOrDefault(); // Această linie va arunca InvalidOperationException