Single, SingleOrDefault, First, FirstOrDefault, Find | Linq | CSharp
- Single, SingleOrDefault, First, FirstOrDefault, Find | Linq | CSharp
Find
-
Origem: Não é LINQ. Pertence à classe
List<T>do namespaceSystem.Collections.Generic. -
Uso:
list.Find(predicate) -
Disponibilidade: Apenas em
List<T>. -
Exemplo:
var numeros = new List<int> { 1, 2, 3, 4, 5 };
var resultado = numeros.Find(n => n > 3); // retorna 4
First
-
Origem: LINQ (namespace
System.Linq) -
Uso:
colecao.First(predicate) -
Lança exceção se não encontrar nenhum elemento.
-
Exemplo:
var numeros = new[] { 1, 2, 3, 4, 5 };
var resultado = numeros.First(n => n > 3); // retorna 4
FirstOrDefault
-
Origem: LINQ
-
Uso:
colecao.FirstOrDefault(predicate) -
Retorna valor padrão (ex:
null,0, etc.) se não encontrar. -
Exemplo:
var numeros = new[] { 1, 2, 3 };
var resultado = numeros.FirstOrDefault(n => n > 5); // retorna 0
Single
-
Origem: LINQ
-
Uso:
colecao.Single(predicate) -
Lança exceção se encontrar 0 ou mais de 1 item.
-
Exemplo:
var numeros = new[] { 1, 2, 3 };
var resultado = numeros.Single(n => n == 2); // retorna 2
SingleOrDefault
-
Origem: LINQ
-
Uso:
colecao.SingleOrDefault(predicate) -
Lança exceção se encontrar mais de 1 item.
-
Retorna valor padrão se não encontrar nenhum.
-
Exemplo:
var numeros = new[] { 1, 2, 3 };
var resultado = numeros.SingleOrDefault(n => n == 4); // retorna 0
✅ Resumo rápido:
| Método | É LINQ? | Exceção se não encontrar | Exceção se mais de 1 | Retorna padrão |
|---|---|---|---|---|
| Find | ❌ Não | ❌ | ❌ | ❌ |
| First | ✅ Sim | ✅ | ❌ | ❌ |
| FirstOrDefault | ✅ Sim | ❌ | ❌ | ✅ |
| Single | ✅ Sim | ✅ | ✅ | ❌ |
| SingleOrDefault | ✅ Sim | ❌ | ✅ | ✅ |