Skip to main content

Single, SingleOrDefault, First, FirstOrDefault, Find | Linq | CSharp

  • Single, SingleOrDefault, First, FirstOrDefault, Find | Linq | CSharp

Find

  • Origem: Não é LINQ. Pertence à classe List<T> do namespace System.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 encontrarExceção se mais de 1Retorna padrão
Find❌ Não
First✅ Sim
FirstOrDefault✅ Sim
Single✅ Sim
SingleOrDefault✅ Sim