Close Menu
Código Simples .NETCódigo Simples .NET
    Facebook X (Twitter) Instagram
    Trending
    • NewSQL em 2025: O Estado Atual, Tendências e o Futuro dos Bancos de Dados Relacionais Escaláveis
    • 12 Regras Essenciais para Reduzir a Latência de Aplicações
    • Cache Hit Ratio: Como uma Simples Métrica Pode Revolucionar sua Arquitetura
    • Como a Uber calcula o tempo estimado de chegada
    • 30 APIs Gratuitas para desenvolvedores
    • Por que escalar escrita é tão mais difícil do que escalar leitura?
    • MongoDB Analyzer para .NET: Visualize e otimize suas consultas de forma simples
    • Cardinalidade: O Conceito que Transforma o Desempenho de Bancos de Dados SQL e NoSQL
    Facebook X (Twitter) Instagram
    Código Simples .NETCódigo Simples .NET
    Código Simples .NETCódigo Simples .NET
    Home»Asp.net»C#»Entendendo sobre Single, SingleOrDefault, First e FirstOrDefault – Linq

    Entendendo sobre Single, SingleOrDefault, First e FirstOrDefault – Linq

    Jhonathan SoaresBy Jhonathan Soares28 de março de 20162 Mins Read C#
    Share
    Facebook Twitter LinkedIn WhatsApp Copy Link

    LINQ fornece operadores de elementos que retornam um único elemento ou um elemento específico de uma coleção. São eles: Single, SingleOrDefault, First, FirstOrDefault, Last, LastOrDefault. Vamos ver um pouco mais sobre cada um deles:

    Single

    Ele retorna um único elemento específico de uma coleção de elementos se o elemento bate com seus critérios. Uma exceção é lançada, se nenhum ou mais de uma correspondência for encontrada para esse elemento na coleção.

    SingleOrDefault

    Ele retorna um único elemento específico de uma coleção de elementos se o elemento bate com seus critérios. Uma exceção é lançada, se mais de uma correspondência encontrada para esse elemento na coleção. Um valor padrão é retornado, se nenhuma correspondência for encontrada para esse elemento na coleção.

    First

    Ele retorna primeiro elemento específico de uma coleção de elementos se um ou mais objetos forem encontrados para esse elemento. Uma exceção é lançada, se nenhuma correspondência for encontrada para esse elemento na coleção.Equivalente ao Last, porém retornando o último objeto da colação.

    FirstOrDefault

    Ele retorna primeiro elemento específico de uma coleção de elementos se um ou mais objetos forem encontrados  para esse elemento. Um valor padrão é retornado, se nenhuma correspondência for encontrada para esse elemento na coleção. Equivalente ao LastOfDefault, porém retornando o último objeto da colação.

    Quando usar Sing, SingleOrDefault, First e FirstOrDefault:

    • Quando você quer uma exceção para ser lançada se o conjunto de resultados contém muitos registros, use Single ou SingleOrDefault.
    • Quando você quer um valor padrão a ser devolvido se o conjunto de resultados contém nenhum registro, use SingleOrDefault.
    • Quando você quer sempre um registro, não importa o que o conjunto de resultados contém, use First ou FirstOrDefault.
    • Quando você quer um valor padrão se o conjunto de resultados contém nenhum registro, use FirstOrDefault.

     

    Desempenho de SingleOrDefault e FirstOrDefault

    FirstOrDefault normalmente executará mais rápido do que a comparação SingleOrDefault, uma vez que estes iterar a coleção até encontrar o primeiro registro. Enquanto SingleOrDefault irá fazer uma busca cega na coleção inteira para encontrar um único resultado.

    Por hoje é só e um grande abraço!

     

    Share. Facebook Twitter LinkedIn Telegram WhatsApp Copy Link
    Jhonathan Soares
    • Website
    • Facebook
    • X (Twitter)
    • LinkedIn

    Criador do blog Código Simples e com mais 15 anos de experiência em TI, com títulos de MVP Microsoft na área de Visual Studio Development, Neo4j Top 50 Certificate, Scrum Master e MongoDB Evangelist.

    Posts Relacionados

    O que é a Ecma e qual é sua relação com C#?

    C# Post do Leitor 29 de julho de 20247 Mins Read

    UUID vs ULID: comparação e exemplos em C#

    C# 19 de junho de 20245 Mins Read

    Entendendo o ObjectId no MongoDB

    C# NoSql 25 de maio de 20246 Mins Read
    Newsletter

    Digite seu endereço de e-mail para receber notificações de novas publicações por e-mail.

    Junte-se a 25mil outros assinantes
    Posts recentes
    • NewSQL em 2025: O Estado Atual, Tendências e o Futuro dos Bancos de Dados Relacionais Escaláveis
    • 12 Regras Essenciais para Reduzir a Latência de Aplicações
    • Cache Hit Ratio: Como uma Simples Métrica Pode Revolucionar sua Arquitetura
    • Como a Uber calcula o tempo estimado de chegada
    • 30 APIs Gratuitas para desenvolvedores
    Categorias
    • Arquitetura (14)
      • Testes (2)
    • Asp.net (120)
      • C# (89)
      • Mvc (13)
    • Banco de dados (90)
      • NoSql (58)
      • Sql (38)
    • Boas práticas (29)
      • Gestão & Produtividade (1)
      • Metodologias Ágeis (6)
    • Cursos (52)
    • Dicas (105)
    • Front-End (92)
    • IA (1)
    • Linux (6)
    • NodeJS (4)
    • Post do Leitor (9)
    • Python (5)
    • Seo (12)
    • Tecnologia (30)
      • ITIL (1)
      • Padrões de Projeto (4)
    • Testes (2)

    VEJA TAMBÉM

    Cursos
    12 de fevereiro de 20166 Mins Read

    1000 livros gratuitos sobre programação!

    Olha que dica bacana! A pagina só com livros sobre programação é mantida no GitHub…

    30 APIs Gratuitas para desenvolvedores

    Facebook X (Twitter) Instagram LinkedIn

    Type above and press Enter to search. Press Esc to cancel.

    Vá para versão mobile