Middle
¿Cuál es la diferencia entre los métodos FirstOrDefault y SingleOrDefault?
sobes.tech AI
Respuesta de la IA
FirstOrDefault() devuelve el primer elemento de la secuencia que cumple con la condición, o un valor predeterminado (null para tipos de referencia, 0 para tipos numéricos) si no hay tales elementos.
SingleOrDefault() devuelve el único elemento de la secuencia que cumple con la condición, o un valor predeterminado si no hay tales elementos. Si hay más de uno, se lanza una excepción InvalidOperationException.
| Característica | FirstOrDefault | SingleOrDefault |
|---|---|---|
| Se encuentran 1+ elementos | Devuelve el primero | Lanza una excepción |
| No se encuentran elementos | Devuelve valor predeterminado | Devuelve valor predeterminado |
| Cantidad esperada | Cero o más | Exactamente uno |
// Ejemplo de uso de FirstOrDefault
var numbers = new List<int> { 1, 2, 3, 4, 5 };
var evenNumber = numbers.FirstOrDefault(n => n % 2 == 0); // evenNumber será 2
var nonExistent = numbers.FirstOrDefault(n => n > 10); // nonExistent será 0
// Ejemplo de uso de SingleOrDefault
var singleNumber = new List<int> { 7 };
var result = singleNumber.SingleOrDefault(); // result será 7
var emptyList = new List<int>();
var defaultValue = emptyList.SingleOrDefault(); // defaultValue será 0
var multipleNumbers = new List<int> { 1, 2, 3 };
// var error = multipleNumbers.SingleOrDefault(); // Esta línea lanzará InvalidOperationException