Compartilhar via


Expressões de consulta do LINQ (guia de programação do C#)

LINQ (Consulta Integrada à Linguagem)é o nome de um conjunto de tecnologias com base na integração dos recursos de consulta diretamente para o idioma C# (também em Visual Basic e potencialmente qualquer outro.NET language).Com LINQ, uma consulta agora é uma construção de linguagem de primeira classe, assim como classes, métodos, eventos e assim por diante.

Para um desenvolvedor que grava consultas, a parte mais visível "integrada à linguagem" de LINQ é a expressão de consulta.Expressões de consulta são escritas em um declarativa sintaxe de consulta introduzido no C# 3.0.Usando a sintaxe de consulta, você pode executar mesmo complexos filtragem, classificação e operações de agrupamento em Fonte de Dados com um mínimo de código.Você usar os mesmos padrões de expressão de consulta básica para consulta e transformar dados em bancos de dados SQL, ADO.NET conjuntos de dados, documentos XML e fluxos, e.NET coleções.

O exemplo a seguir mostra a operação de consulta completa.A operação completa inclui a criação de uma fonte de dados, definindo a expressão de consulta e executar a consulta em um foreach instrução.

class LINQQueryExpressions
{
    static void Main()
    {

        // Specify the data source.
        int[] scores = new int[] { 97, 92, 81, 60 };

        // Define the query expression.
        IEnumerable<int> scoreQuery =
            from score in scores
            where score > 80
            select score;

        // Execute the query.
        foreach (int i in scoreQuery)
        {
            Console.Write(i + " ");
        }            
    }
}
// Output: 97 92 81

Para obter mais informações sobre os fundamentos do LINQ na C#, consulte Guia de Introdução do LINQ em C#.

Visão geral da expressão de consulta

  • Expressões de consulta podem ser usadas para consultar e transformar dados de qualquer LINQ-habilitado a fonte de dados.Por exemplo, uma única consulta pode recuperar dados de um banco de dados SQL e produzir um fluxo XML como saída.

  • Expressões de consulta são fáceis dominar porque eles usam construções muitos familiares C# de linguagem.Para obter mais informações, consulte Guia de Introdução do LINQ em C#.

  • As variáveis em uma expressão de consulta são todos fortemente tipadas, embora em muitos casos você não tem que oferecer o tipo explicitamente porque o compilador pode inferir a ele.Para obter mais informações, consulte Relações de tipo em operações de consulta do LINQ (C#).

  • Uma consulta não é executada até que você pode iterar sobre a variável de consulta em um foreach instrução.Para obter mais informações, consulte Introdução às consultas do LINQ (C#).

  • Em tempo de compilação, expressões de consulta são convertidos em chamadas de método do operador de consulta padrão de acordo com a regras definidas na especificação C#.Qualquer consulta que pode ser expressos usando a sintaxe de consulta também pode ser expressos usando a sintaxe do método.No entanto, na maioria dos casos a sintaxe de consulta é mais legível e concisos.Para obter mais informações, consulte Especificação de linguagem do C# e Visão geral operadores de consulta padrão.

  • Como regra quando você escreve LINQ consultas, é recomendável que você use a sintaxe de consulta sempre que possível e a sintaxe do método sempre que necessário.Há não semântica ou desempenho diferença entre as duas formas diferentes.Expressões de consulta são geralmente mais legível do que as expressões equivalentes escritas na sintaxe do método.

  • Algumas operações, da consulta, como Count ou Max, não ter nenhuma cláusula de expressão de consulta equivalente e, portanto, devem ser expressos como uma chamada de método.Sintaxe do método pode ser combinado com a sintaxe de consulta de várias maneiras.Para obter mais informações, consulte Sintaxe de consulta e sintaxe de método em LINQ (C#).

  • Expressões de consulta podem ser compiladas para árvores de expressão ou representantes, dependendo do tipo que a consulta é aplicada a.IEnumerable<T>consultas são compiladas para representantes.IQueryablee IQueryable<T> consultas são compiladas em árvores de expressão.Para obter mais informações, consulte Árvores de expressão (C# e Visual Basic).

A tabela a seguir, lista os tópicos que fornecem informações adicionais sobre as consultas e exemplos de código para tarefas comuns.

Tópico

Descrição

Noções básicas da expressão de consulta (guia de programação do C#)

Introduz os conceitos fundamentais de consulta e fornece exemplos da sintaxe de consulta C#.

Como: escrever consultas LINQ em C#

Fornece exemplos de vários tipos básicos de expressões de consulta.

Como: tratar exceções em expressões de consulta (guia de programação do C#)

Como e quando mover possível exception-throwing código fora de uma expressão de consulta.

Como: preencher as coleções de objetos de várias fontes (LINQ)

Como usar o select a instrução para mesclar dados de fontes diferentes em um novo tipo.

Como: resultados de consulta de grupo (guia de programação do C#)

Mostra as diferentes maneiras para usar o group cláusula.

Como: criar um grupo aninhado (guia de programação do C#)

Mostra como criar grupos aninhados.

Como: executar uma subconsulta em uma operação de agrupamento (guia de programação do C#)

Mostra como usar uma subexpressão em uma consulta como fonte de dados para uma nova consulta.

Como: resultados de grupo por chaves contíguos (guia de programação do C#)

Mostra como implementar um operador de consulta padrão do thread-safe que pode executar operações de agrupamento em fontes de dados de fluxo contínuo.

Como: especificar dinamicamente o predicado filtros em tempo de execução (guia de programação do C#)

Mostra como fornecer um número arbitrário de valores a serem usados em comparações de igualdade em um where cláusula.

Como: armazenar os resultados de uma consulta na memória (guia de programação do C#)

Ilustra como Materializar e armazenar os resultados da consulta sem necessariamente usando um foreach loop.

Como: retornar a uma consulta de um método (guia de programação do C#)

Mostra como retornar as variáveis de consulta de métodos e passá-los para métodos como parâmetros de entrada.

Como: executar operações de associação personalizado (guia de programação do C#)

Mostra como executar as operações de associação baseadas em qualquer tipo de função de predicado.

Como: associação usando chaves compostas (guia de programação do C#)

Mostra como unir duas fontes com base em mais de uma chave correspondente.

Como: ordem dos resultados de uma cláusula de associação (guia de programação do C#)

Mostra a ordem de uma seqüência que é produzida por uma operação de associação.

Como: realizar interna associações (guia de programação C#)

Mostra como executar uma associação interna na LINQ.

Como: realizar associações agrupadas (guia de programação C#)

Mostra como produzir uma junção agrupada em LINQ.

Como: executar esquerda junções externas (guia de programação do C#)

Mostra como produzir uma junção externa esquerda na LINQ.

Como: manipular valores nulos em expressões de consulta (guia de programação do C#)

Mostra como tratar valores nulos em LINQ consultas.

Consulte também

Tarefas

Passo a passo: Escrever consultas em C# (LINQ)

Conceitos

Guia de programação do C#

Operações de consulta do LINQ básicas (C#)

Sintaxe de consulta e sintaxe de método em LINQ (C#)

Visão geral operadores de consulta padrão

Outros recursos

LINQ (consulta integrada à linguagem)

Palavras-chave de consulta (referência de C#)

Como funcionam as consultas Linq to Objects

de leitura e consultas de escrita

o que é uma coleção?

Link para tudo: uma lista de provedores LINQ