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