Middle
Qual è la differenza tra i metodi FirstOrDefault e SingleOrDefault?
sobes.tech AI
Risposta dell'AI
FirstOrDefault() restituisce il primo elemento della sequenza che soddisfa la condizione, o un valore predefinito (null per tipi di riferimento, 0 per tipi numerici) se nessun elemento soddisfa la condizione.
SingleOrDefault() restituisce l'unico elemento della sequenza che soddisfa la condizione, o un valore predefinito se nessun elemento la soddisfa. Se ci sono più di un elemento, viene sollevata un'eccezione InvalidOperationException.
| Caratteristica | FirstOrDefault | SingleOrDefault |
|---|---|---|
| Trova 1+ elementi | Restituisce il primo | Solleva un'eccezione |
| Nessun elemento trovato | Restituisce il valore predefinito | Restituisce il valore predefinito |
| Quantità attesa | Zero o più | Esattamente uno |
// Esempio di utilizzo di FirstOrDefault
var numbers = new List<int> { 1, 2, 3, 4, 5 };
var evenNumber = numbers.FirstOrDefault(n => n % 2 == 0); // evenNumber sarà 2
var nonExistent = numbers.FirstOrDefault(n => n > 10); // nonExistent sarà 0
// Esempio di utilizzo di SingleOrDefault
var singleNumber = new List<int> { 7 };
var result = singleNumber.SingleOrDefault(); // result sarà 7
var emptyList = new List<int>();
var defaultValue = emptyList.SingleOrDefault(); // defaultValue sarà 0
var multipleNumbers = new List<int> { 1, 2, 3 };
// var error = multipleNumbers.SingleOrDefault(); // Questa riga solleverà InvalidOperationException