Sobes.tech
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