Expressões de consulta do LINQ (guia de programação translation from VPE for Csharp)

LINQ (consulta integrada à linguagem) é o nome de um conjunto de tecnologias baseadas na integração de recursos de consulta diretamente para o idioma translation from VPE for Csharp (também no Visual Basic e potencialmente qualquer Outros linguagem .NET). Com LINQ, uma consulta agora é uma construção de linguagem de primeira classe, apenas como classes, métodos, eventos e assim por diante.

Para um desenvolvedor que grava consultas, a parte mais visível "integrada à linguagem" doLINQ é a expressão de consulta. Expressões de consulta são escritas em um declarativa sintaxe de consulta introduzido no translation from VPE for Csharp 3.0.Usando a sintaxe de consulta, você pode executar filtragem mesmo complexos, pedidos e operações de agrupamento em fontes de dados com um mínimo de código.Você usa os mesmos padrões de expressão de consulta básica para consultar e transformar dados em bancos de dados SQL, ADO.NET DataSets, documentos XML e fluxos e coleções do .NET.

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

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 de LINQ no translation from VPE for Csharp, consulte Introdução ao LINQ em C#.

Consulta expressão visão geral

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

  • Expressões de consulta são fáceis de mestre porque usam muitas construções de linguagem translation from VPE for Csharp familiares.Para obter mais informações, consulte Introdução ao LINQ em C#.

  • As variáveis em uma expressão de consulta são todos rigidez de tipos, embora em muitos casos você não tenha Forneça explicitamente o tipo porque o compilador pode inferi-lo.Para obter mais informações, consulte Relações de tipo em operações de Consulta (LINQ).

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

  • No momento da compilar, expressões de consulta são convertidos em chamadas de método do operador de consulta padrão de acordo com para as regras definidas na especificação translation from VPE for Csharp.Todas as consultas que podem ser expressos usando sintaxe de consulta também podem ser expressos usando sintaxe do método.No entanto, na maioria dos casos a sintaxe de consulta é mais conciso e legível.Para obter mais informações, consulte Especificação da linguagem C# e Visão geral sobre operadores de consulta padrão.

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

  • Algumas operações de consulta, sistema autônomo Count ou Max, não ter nenhuma cláusula de expressão de consulta equivalente e, portanto, deve ser expresso sistema autônomo uma telefonar de método. Sintaxe do método pode ser combinado com sintaxe de consulta de várias maneiras.Para obter mais informações, consulte Sintaxe de consulta versus sintaxe do método (LINQ).

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

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

Tópico

Descrição

Noções básicas expressão de consulta (guia de programação translation from VPE for Csharp)

Apresenta os conceitos fundamentais de consulta e fornece exemplos de sintaxe de consulta translation from VPE for Csharp.

Como: Escrever consultas LINQ em translation from VPE for Csharp

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 translation from VPE for Csharp)

Como e quando mover o código de lançar a exceção potencial fora de uma expressão de consulta.

Como: Preencher coleções de objetos de Múltiplo fontes (LINQ)

Como usar o select demonstrativo mesclagem dados de diferentes origens em um novo tipo.

Como: Resultados do agrupar de várias maneiras (guia de programação translation from VPE for Csharp)

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

Como: Um agrupar (guia de programação translation from VPE for Csharp) de agrupar

Mostra como criar grupos aninhados.

Como: Executar uma subconsulta em uma operação de agrupamento (guia de programação translation from VPE for Csharp)

Mostra sistema autônomo usar uma subexpressão em uma consulta sistema autônomo uma fonte de dados para uma nova consulta.

Como: agrupar de resultados por chaves contígua (guia de programação translation from VPE for Csharp)

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

Como: Especificar dinamicamente o predicado filtros em tempo de execução (guia de programação translation from VPE for Csharp)

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 translation from VPE for Csharp)

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

Como: Retornar uma consulta de um método (guia de programação translation from VPE for Csharp)

Mostra sistema autônomo retornar sistema autônomo variáveis de consulta dos métodos e sistema autônomo para passá-las para métodos sistema autônomo parâmetros de entrada.

Como: Executar operações de unir personalizada (guia de programação translation from VPE for Csharp)

Mostra como executar as operações de unir com base em qualquer tipo de função de predicado.

Como: unir usando chaves compostas (guia de programação translation from VPE for Csharp)

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

Como: Ordenar os resultados de uma cláusula unir (guia de programação translation from VPE for Csharp)

Mostra como solicitar uma sequência que é produzida por um unir operação.

Como: Executar associações interna (guia de programação translation from VPE for Csharp)

Mostra como executar um interno unir em LINQ.

Como: Executar associações agrupadas (guia de programação translation from VPE for Csharp)

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

Como: Executar associações externas (guia de programação translation from VPE for Csharp) à esquerda

Mostra como produzir uma unir externa esquerda em LINQ.

Como: Lidar com valores nulo em expressões de consulta (guia de programação translation from VPE for Csharp)

Mostra como para manipular valores nulo em LINQ consultas.

Consulte também

Tarefas

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

Conceitos

Basic Consulta operações (LINQ)

Sintaxe de consulta versus sintaxe do método (LINQ)

Visão geral sobre operadores de consulta padrão

Referência

Guia de programação do LINQ geral

Outros recursos

Language-Integrated Query (LINQ)

Palavras-chave de consulta (translation from VPE for Csharp Reference)

Como o LINQ to Objects consultas trabalho

Lendo e gravando consultas

O que é uma coleção?

Link para tudo: Uma lista de provedores LINQ