Middle
Qual é a diferença entre os métodos FirstOrDefault e SingleOrDefault?
sobes.tech IA
Resposta da IA
FirstOrDefault() devolve o primeiro elemento da sequência que satisfaz a condição, ou um valor padrão (null para tipos de referência, 0 para tipos numéricos) se não houver tais elementos.
SingleOrDefault() devolve o único elemento da sequência que satisfaz a condição, ou um valor padrão se não houver tais elementos. Se houver mais de um, é lançada uma exceção InvalidOperationException.
| Característica | FirstOrDefault | SingleOrDefault |
|---|---|---|
| Encontrados 1+ elementos | Devolve o primeiro | Lança uma exceção |
| Nenhum elemento encontrado | Devolve valor padrão | Devolve valor padrão |
| Quantidade esperada | Zero ou mais | Exatamente um |
// Exemplo 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
// Exemplo 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 linha lança InvalidOperationException