Sobes.tech
Middle

Aký je rozdiel medzi metódami FirstOrDefault a SingleOrDefault?

sobes.tech AI

Odpoveď od AI

FirstOrDefault() vráti prvý prvok sekvencie, ktorý spĺňa podmienku, alebo predvolenú hodnotu (null pre referenčné typy, 0 pre číselné typy), ak také prvky neexistujú.
SingleOrDefault() vráti jediný prvok sekvencie, ktorý spĺňa podmienku, alebo predvolenú hodnotu, ak také prvky neexistujú. Ak je ich viac ako jeden, je vyvolaná výnimka InvalidOperationException.

Vlastnosť FirstOrDefault SingleOrDefault
Nájde 1+ prvkov Vráti prvý Vyvolá výnimku
Nenašiel žiadny prvok Vráti predvolenú hodnotu Vráti predvolenú hodnotu
Očakávané množstvo Nula alebo viac Presne jeden
// Príklad použitia FirstOrDefault
var numbers = new List<int> { 1, 2, 3, 4, 5 };
var evenNumber = numbers.FirstOrDefault(n => n % 2 == 0); // evenNumber bude 2
var nonExistent = numbers.FirstOrDefault(n => n > 10);   // nonExistent bude 0

// Príklad použitia SingleOrDefault
var singleNumber = new List<int> { 7 };
var result = singleNumber.SingleOrDefault(); // result bude 7

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

var multipleNumbers = new List<int> { 1, 2, 3 };
// var error = multipleNumbers.SingleOrDefault(); // Tento riadok vyvolá InvalidOperationException