Middle
Mi a különbség a FirstOrDefault és a SingleOrDefault módszerek között?
sobes.tech MI
Válasz az MI-től
FirstOrDefault() visszaadja az első olyan elemet a sorozatból, amely megfelel a feltételnek, vagy alapértelmezett értéket (null referencia típusok esetén, 0 numerikus típusok esetén), ha nincs ilyen elem.
SingleOrDefault() visszaadja az egyetlen olyan elemet a sorozatból, amely megfelel a feltételnek, vagy alapértelmezett értéket, ha nincs ilyen elem. Ha több ilyen van, kivételt InvalidOperationException dob.
| Jellemző | FirstOrDefault | SingleOrDefault |
|---|---|---|
| 1+ elem található | Az elsőt adja vissza | Kivételt dob |
| Nem található elem | Alapértelmezett értéket ad | Alapértelmezett értéket ad |
| Várt mennyiség | Nullától több | Pontosan egyet |
// FirstOrDefault használati példa
var numbers = new List<int> { 1, 2, 3, 4, 5 };
var evenNumber = numbers.FirstOrDefault(n => n % 2 == 0); // evenNumber 2 lesz
var nonExistent = numbers.FirstOrDefault(n => n > 10); // nonExistent 0 lesz
// SingleOrDefault használati példa
var singleNumber = new List<int> { 7 };
var result = singleNumber.SingleOrDefault(); // result 7 lesz
var emptyList = new List<int>();
var defaultValue = emptyList.SingleOrDefault(); // defaultValue 0 lesz
var multipleNumbers = new List<int> { 1, 2, 3 };
// var error = multipleNumbers.SingleOrDefault(); // Ez a sor InvalidOperationException-t dob