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#).