Partilhar via


C# recursos que oferecem suporte ao LINQ

A seção a seguir apresenta novas construções de linguagem, introduzidas no C# 3.0. Embora esses novos recursos são usados para um grau com LINQ consultas, eles são não se limitando a LINQ e pode ser usado em qualquer contexto onde você encontrá-los úteis.

Expressões de consulta

Expressões de consultas usam a sintaxe declarativa semelhante a SQL ou XQuery à consulta sobre coleções de IEnumerable. Na compilação sintaxe de consulta de hora é convertido em chamadas de método para um LINQ a implementação do provedor de métodos de extensão do padrão de consulta do operador. Os aplicativos controlam os operadores de consulta padrão que estão no escopo, especificando o namespace apropriado com um using diretiva. A expressão de consulta a seguir usa uma matriz de seqüências de caracteres, grupos de acordo com o primeiro caractere na seqüência de caracteres e os grupos de ordens.

var query = from str in stringArray
            group str by str[0] into stringGroup
            orderby stringGroup.Key
            select stringGroup;

Para obter mais informações, consulte <>>Expressões de consulta do LINQ (guia de programação TRANSLATION FROM VPE FOR CSHARP).

Implicitamente digitado variáveis (var)

Em vez de especificar explicitamente um tipo ao declarar e inicializar uma variável, você pode usar o var modificador para instruir o compilador para inferir e atribuir o tipo, conforme mostrado aqui:

var number = 5;
var name = "Virginia";
var query = from str in stringArray
            where str[0] == 'm'
            select str;

As variáveis declaradas como var são apenas tão fortemente tipados como variáveis cujo tipo você especificar explicitamente. O uso de var torna possível criar tipos anônimos, mas ele pode ser usado para qualquer variável local. Arrays também podem ser declarados com a digitação implícita.

Para obter mais informações, consulte Implicitamente digitado variáveis locais (TRANSLATION FROM VPE FOR CSHARP guia de programação).

Objeto e coleção inicializadores

Inicializadores de objeto e coleção tornam possível inicializar objetos sem explicitamente chamar um construtor para o objeto. Inicializadores são normalmente usados em expressões de consulta quando eles os dados de origem do projeto em um novo tipo de dados. Supondo que uma classe chamada Customer com o público Name e Phone , o inicializador de objeto podem ser usadas como no código a seguir:

Customer cust = new Customer { Name = "Mike", Phone = "555-1212" };

Para obter mais informações, consulte Objeto e coleção inicializadores (guia de programação TRANSLATION FROM VPE FOR CSHARP).

Tipos Anônimos

Um tipo anônimo é construído pelo compilador e o nome do tipo só está disponível para o compilador. Tipos anônimos fornecem uma maneira conveniente de agrupar um conjunto de propriedades temporariamente em um resultado de consulta sem ter que definir um tipo nomeado de separado. Tipos anônimos são inicializados com uma nova expressão e um inicializador de objeto, como mostrado aqui:

select new {name = cust.Name, phone = cust.Phone};

Para obter mais informações, consulte Tipos anônimos (guia de programação TRANSLATION FROM VPE FOR CSHARP).

Métodos de extensão

Um método de extensão é um método estático que pode ser associado um tipo, para que ele pode ser chamado como se fosse um método de instância no tipo. Este recurso permite que você, na verdade, "Adicionar" novos métodos para tipos existentes sem realmente modificá-los. Os operadores de consulta padrão são um conjunto de métodos de extensão que fornecem LINQ a funcionalidade de consulta para qualquer tipo que implementa IEnumerable<T>.

Para obter mais informações, consulte Métodos de extensão (guia de programação TRANSLATION FROM VPE FOR CSHARP).

Expressões Lambda

Uma expressão lambda é uma função in-line que usa a = > operador para separar os parâmetros de corpo da função de entrada e pode ser convertida em tempo de compilação para um representante ou uma árvore de expressão. No LINQ de programação, você encontrará as expressões lambda quando você faz chamadas de método direto para os operadores de consulta padrão.

Para obter mais informações, consulte:

Propriedades de auto-implementada

Propriedades de implementado para auto fazem a declaração de propriedade mais concisa. Quando você declara uma propriedade, conforme mostrado no exemplo a seguir, o compilador criará um campo particular e anônimo de backup que não está acessível, exceto por meio da propriedade getter e setter.

public string Name {get; set;}

Para obter mais informações, consulte Automático-.

Consulte também

Conceitos

Recursos Visual Basic que suportam LINQ

Outros recursos

LINQ (consulta integrada à linguagem)