Jaký je rozdíl mezi single a SingleOrDefault v Linq?
Jaký je rozdíl mezi single a SingleOrDefault v Linq?

Video: Jaký je rozdíl mezi single a SingleOrDefault v Linq?

Video: Jaký je rozdíl mezi single a SingleOrDefault v Linq?
Video: (#41) First() vs FirstOrDefault() vs Last() vs LastOfDefault() vs Single() vs SingleOrDefault() 2024, Smět
Anonim

Singl () - Existuje přesně 1 výsledek, pokud není vrácen žádný výsledek nebo je vrácen více než jeden výsledek, je vyvolána výjimka. SingleOrDefault () - Stejný jako Singl (), ale dokáže zpracovat hodnotu null. First() - Existuje alespoň jeden výsledek, pokud není vrácen žádný výsledek, je vyvolána výjimka.

Jaké jsou tímto způsobem rozdíly mezi metodami single () a SingleOrDefault ()?

The Metoda SingleOrDefault() . dělá to samé jako Single() metoda . Jediný rozdíl je, že vrací výchozí hodnotu datového typu kolekce, pokud je kolekce prázdná, obsahuje více než jeden prvek nebo nenajde žádný prvek nebo více než jeden prvek pro zadanou podmínku.

Také, co je v Linq jednoduché nebo výchozí? Sémantický rozdíl: FirstOrDefault vrátí první položku z potenciálně více (nebo výchozí pokud žádný neexistuje). SingleOrDefault předpokládá, že existuje a singl věc a vrátí ji (příp výchozí pokud žádný neexistuje). Více položek je porušením smlouvy, je vyvolána výjimka.

Jaký je tedy rozdíl mezi prvním a singlem v Linq?

za prvé () vyhodí, pokud nemůže najít za prvé odpovídající hodnota, Singl () vyvolá, pokud nemůže najít hodnotu a pokud je ve vstupní sekvenci více než jeden odpovídající prvek. Proto mají tzv. sesterské funkce FirstOrDefault () a SingleOrDefault().

Jaký je rozdíl mezi metodou rozšíření FirstOrDefault () a SingleOrDefault () v Linq?

Úvod. The Metoda SingleOrDefault() . vrátí jeden konkrétní prvek sekvence nebo výchozí hodnotu, pokud tento prvek není nalezen v sekvence. The Metoda FirstOrDefault() . vrátí první konkrétní prvek sekvence nebo výchozí hodnotu, pokud tento prvek není nalezen v sekvence.

Doporučuje: