Compartilhar via


Translation from VPE for Csharp 3.0 recursos LINQ suporte

A seção a seguir apresenta as novas construções de linguagem translation from VPE for Csharp 3.0.Embora esses novos recursos sejam usados em um grau com LINQ consultas, eles não estão limitados a LINQ e pode ser usado em qualquer contexto onde você encontrá-los úteis.

Expressões de consulta

Consultas expressões utilizam uma sintaxe declarativa similar a SQL ou XQuery a consulta sobre coleções IEnumerable.Em time de compilar sintaxe de consulta é convertida em chamadas de método para um LINQ implementação do provedor de métodos de extensão de operador de consulta padrão. Os aplicativos controlam os operadores de consulta padrão que estão no escopo, especificando o namespace apropriado com um using diretiva. A seguinte expressão de consulta de uma matriz de seqüências de caracteres, agrupa-os de acordo com para 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 LINQ (Guia de programação C#).

Implicitamente Typed variáveis (var)

Em vez de especificar um tipo explicitamente ao declarar e inicializar uma variável, você pode usar o var modificador para instruir o compilador a inferir e atribui o tipo, sistema autônomo mostrado aqui:

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

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

Para obter mais informações, consulte Digitada implicitamente variáveis Local (C# Guia de programação).

Objeto e coleção inicializadores

Os inicializadores de objeto e coleção possibilitam a inicializar objetos sem chamar explicitamente um construtor para o objeto.Inicializadores são normalmente usados em expressões de consulta quando eles dados de fonte para um novo tipo de dados do projeto.Supondo que uma classe denominada Customer com o público Name e Phone Propriedades, o inicializador de objeto podem ser usadas sistema autônomo no código a seguir:

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

Para obter mais informações, consulte Objeto e inicializadores de coleção (Guia de programação C#).

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ônimo fornecem uma maneira conveniente para agrupar um conjunto de propriedades temporariamente em um resultado de consulta sem a necessidade de definir um tipo nomeado de separado.Tipos anônimo são inicializados com uma nova expressão e um inicializador de objeto, sistema autônomo mostrado aqui:

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

Para obter mais informações, consulte Tipos anônimos (Guia de programação C#).

Métodos de extensão

Um método de extensão é um método estático que pode ser associado a um tipo, para que ele pode ser chamado sistema autônomo 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 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 C#).

Expressões Lambda

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

Para obter mais informações, consulte:

Propriedades implementado automática

Propriedades implementadas automaticamente fazem declaração de propriedade mais conciso.Quando você declara uma propriedade, sistema autônomo mostrado no exemplo a seguir, o compilador criará um campo de backup particular e anônimo 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 Propriedades de Automático-implementado (Guia de programação C#).

Consulte também

Outros recursos

LINQ (consulta integrada à linguagem)