Middle
Jaký je rozdíl mezi metodami FirstOrDefault a SingleOrDefault?
sobes.tech AI
Odpověď od AI
FirstOrDefault() vrátí první prvek sekvence, který splňuje podmínku, nebo výchozí hodnotu (null pro referenční typy, 0 pro číselné typy), pokud takové prvky neexistují.
SingleOrDefault() vrátí jediný prvek sekvence, který splňuje podmínku, nebo výchozí hodnotu, pokud takové prvky neexistují. Pokud je jich více, je vyvolána výjimka InvalidOperationException.
| Vlastnost | FirstOrDefault | SingleOrDefault |
|---|---|---|
| Nalezen 1+ prvků | Vrátí první | Vyvolá výjimku |
| Není nalezen žádný prvek | Vrátí výchozí hodnotu | Vrátí výchozí hodnotu |
| Očekávané množství | Nula nebo více | Přesně jeden |
// Příklad použití 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
// Příklad použití 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(); // Tato řádka vyvolá InvalidOperationException