LINQ For Dummies

Language Integrated Query (LINQ) usa uma incrível variedade de operadores. A operador

é uma palavra especial que informa LINQ que tipo de consulta para executar, como verificar se dois valores são iguais. Os operadores podem passar de centenas, mas na maioria dos casos você vai executar a maioria das tarefas usando apenas alguns operadores padrão. Abaixo está uma lista de operadores LINQ essenciais.

OperadorDescrição
a partir deDefine o objeto temporário usado para realizar uma consulta. Pense ofthis operador definir o objeto elemento individual de whichyou derivam todos os outros dados para a consulta. Por exemplo, você choosewhat dados aparecerão na saída e como esses dados são orderedbased na variável temporária. o a partir deoperador é o único que deve aparecer em todas as youCreate consulta.
dentroDefine a fonte de dados utilizado para obter os dados. Um dado sourcecan ser qualquer objeto apoiado por um provedor de dados. Os providercreates uma conexão entre a fonte de dados eo exemplo LINQ query.For, uma fonte de dados pode incluir um objeto, como uma caixa de listagem, um arquivo XML, uma tabela SQL Server, Active Directory, um webservice, ou apenas sobre qualquer outra coisa que você quer usar para collectinformation. É ainda possível trabalhar diretamente com arquivos na unidade yourhard usando uma consulta LINQ. Uma consulta pode conter tantas matchingpairs de a partir de e em operadores como é necessária para descrever completamente thedata fontes utilizadas na consulta.
selecionarEscolhe as informações de saída para a consulta. O simplestoutput é o mesmo objeto que você definir usando o de operador. No entanto, um operador de seleção pode incluir valores calculados, conjuntos de dados, ou propriedades de objetos individuais. O limitingfactor na maioria dos casos é a funcionalidade oferecida pelo LINQprovider. Todos os quatro dos provedores padrão incluem o completerange de selecionar comportamentos operador. Aquery contém apenas um selecionar operatorand este operador deve aparecer como o último operador em thequery.
OndeDescreve as condições em que um elemento aparece como partof a saída. o Onde operador alwaysrequires um argumento booleano para definir as condições de saída. Youcan incluir o maior número Onde operadores asneeded para descrever plenamente os critérios de saída. LINQ interpreta oOnde operadores na ordem em qual atua aparecem na consulta, assim que a ordem é importante. Quando um trabalho querydoesn't como previsto, tente alterar a ordem dos operadores onde para melhor descrever as outputrequirements. Use o depurador para ajudar a localizar erros na logicalflow de Onde operadores.
ordenar porDefine a ordem em que os elementos de saída aparecer. O mais simples ordenar por operador depende de theObject você define usando o a partir deoperador. No entanto, uma ordenar por operatorcan aceitar qualquer instrução que define uma ordenação lógica argumentas de entrada - normalmente numérica, alfabética, símbolo ou binary.You pode usar como muitos ordenar por asneeded operadores para descrever totalmente a ordem dos dados de saída. Tal como acontece com oOnde operador, LINQ interpreta o operador OrdenarPor na ordem em que itappears na consulta. Por conseguinte, a fim de os operadores OrdenarPor é importante.
Junte-se e emCombina duas ou mais fontes de dados para criar uma visualização composta ofthe dados. As fontes de dados não precisa contar com os mesmos fornecedores. uso youcan como muitos Junte-se operadores asrequired para descrever completamente todas as fontes de dados utilizadas para aquery. o em operador define thecriterion usado para combinar duas fontes de dados. Emparelhar o juntar e em operatorsto criar uma fonte de dados completo.
deixeiCria um valor calculado para o uso dentro da consulta. Calculatedvalues ​​fazer consultas complexas mais fácil de formular. Além disso, youcan passar um valor calculado sobre o chamador para fornecer additionaloutput informações. Em muitos casos, o operador let fornece os meios para passingdata que LINQ não vai normalmente passam devido a um conflito de nomes. uso youcan como muitos deixei operadores como requiredto fornecer funcionalidade de consulta completa, mas você deve limitar o useof deixei a situações em que um calculatedvalue aumenta a velocidade de consulta.

Explorando LINQ Grupos operador de consulta padrão

Usando operadores de consulta padrão torna o trabalho com Language Integrated Query (LINQ) consideravelmente mais fácil. De muitas maneiras, você provavelmente já trabalhou com operadores de consulta simples. Por exemplo, quando você usa o ordenar por palavra-chave, você está usando um operador de consulta no grupo de classificação de operadores de consulta padrão. Quando você usa o Onde palavra-chave, você está usando outro operador de consulta, mas desta vez é no grupo de filtragem.

Aqui está uma lista de grupos de operadores de consulta padrão e onde você pode encontrar informações adicionais.

Grupodescrição do grupoOperadores incluídosinformação adicional
operações de agregaçãoOs operadores de agregação todos os ajudar a executar mathematicaltasks com uma fonte de dados.Agregar, Média, Contagem, LongCount, Max, Min, e SomaMicrosoftDeveloper rede: Agregação de Operações
operações de concatenaçãoO único operador de concatenação permite combinar twosequences.concatMicrosoftDeveloper rede: Operações de concatenação
Convertendo tipos de dadosConvertendo tipos de dados vêm em duas formas: diferido andnondeferred. Os operadores de conversão diferidos converter o resultsof uma consulta a um tipo específico como o código interpreta o conjunto de resultados. Os operadores de conversão nondeferred alterar a saída de aquery a um tipo particular.AsEnumerable, AsQueryable, Fundida,OfType, ToArray, ToDictionary, Listar,e ProcurarMicrosoftDeveloper rede: Conversão de tipos de dados
operações elementoOs operadores de elementos ajudá-lo a selecionar um elemento particular em asequence, mesmo quando você não sabe qualquer identificação informações adicionais sobre esse elemento, tal como o seu nome.ElementAt, ElementAtOrDefault, primeiro, FirstOrDefault, Último,LastOrDefault, Único e SingleOrDefaultMicrosoftDeveloper rede: Elemento Operações
operações de igualdadeO único operador de igualdade ajuda a determinar se twosequences são iguais (o número de elementos eo conteúdo do eachelement são iguais).SequenceEqualMicrosoftDeveloper rede: Igualdade de Operações
Filtrando dadosOs operadores de filtragem ajudá-lo a excluir ou incluir elementos sequência ina com base em critérios específicos.OfType e ondeMicrosoftDeveloper rede: Filtragem de dados
operações de geraçãoOs operadores de geração de criar uma nova sequência com base em thecriteria você especificar.DefaultIfEmpty, Vazio, Alcance, eRepetirMicrosoftDeveloper rede: operações de geração
agrupamento de dadosOs operadores de agrupamento ajudá-lo a classificar os dados por um particularcharacteristic, como a primeira letra em um grupo ofstrings.GroupBy e ToLookupMicrosoftDeveloper rede: Agrupamento de Dados
Junte-se a operaçõesOs operadores de união aceitar duas ou mais sequências como uma sequência única saída com base em uma específica entrada andcreate tipo de associação eos critérios de união.Junte-se e GroupJoinMicrosoftDeveloper rede: Junte-se a Operações
dados de particionamentoOs operadores de particionamento ajudá-lo a seção de uma informação específica sequência tolocate.Pular, SkipWhile, Levar, eTakeWhileMicrosoftDeveloper rede: particionamento de dados
operações de projeçãoOs operadores de projecção criam um novo tipo baseada na queryyou criar.selecionar e SelectManyMicrosoftDeveloper rede: Operações de Projeção
operações de quantificadoresOs operadores quantificadores ajudá-lo a selecionar elementos critérios onspecific base. Você usar esses operadores para determinar whethernone, um ou mais de um elementos atender a selectedcriteria.Todos, Qualquer,e contémMicrosoftDeveloper rede: Operações Quantificador
operações de conjuntoOs operadores de conjunto criar conjuntos. Pense na aritmética conjunto youperformed na escola.distinto, Exceto, interceptar,e UniãoMicrosoftDeveloper rede: Conjunto de Operações
classificação de dadosOs operadores de triagem ajudar você a colocar uma seqüência em um particularorder.Ordenar por, OrderByDescending, ThenBy, ThenByDescending e reversoMicrosoftDeveloper rede: classificando dados

Microsoft recursos LINQ

É sempre útil saber onde você pode ir para obter informações adicionais e ferramentas e melhorias ao criar seu aplicações Integrated Query (LINQ) Idioma. Aqui está uma lista de recursos úteis da Microsoft para LINQ.

Microsoft Developer Network

O Microsoft Developer Network (MSDN) sempre desde que o material de base para todos os produtos de desenvolvimento da Microsoft. Você vai encontrar um armazém inteiro de informações lá - mais do que qualquer um ser humano, provavelmente, pode ler em uma vida. Por conseguinte, é preciso peneirar as informações com cuidado ou você vai rapidamente tornar-se perdido no labirinto MSDN. o site da MSDN principal para trabalhar com LINQ lhe oferece notícias, recursos e acesso a outras informações, tais como amostras.

blogs da Microsoft

Microsoft quer que você saiba como trabalhar com LINQ. No passado, você encontraria muita da informação que você precisa sobre MSDN. O site MSDN ainda é um bom lugar para ir, mas muitos desenvolvedores da Microsoft reclamou que foi um pouco demasiado formal (os artigos são muito difíceis de compreender, em alguns casos) e não houve qualquer oportunidade de interagir com os autores. o blogs da Microsoft proporcionar um ambiente mais favorável para a obtenção de informações onde você pode realmente corresponder com o autor. Aqui estão alguns blogs que você vai querer visitar quando se trabalha com LINQ:

A maioria desses blogs são genéricos - todos eles debater questões de programação de algum tipo. Consequentemente, você encontrará uma mistura de temas em cada blog. O autor pode discutir o sistema de arquivos em um poste e LINQ em outro. Cada um tem entradas específicas-LINQ que você pode pesquisar para usar os recursos de pesquisa no blog. Embora Charlie Calvert deixou a Microsoft, seu blog contém uma riqueza de informações gerais LINQ.

fóruns da Microsoft

Se você não pensar que você está recebendo o suficiente interação com a Microsoft através de um blog, funcionários da Microsoft, muitas vezes freqüentam os fóruns da Microsoft também. Upload de uma mensagem para o fórum correto você pode líquido alguma ajuda profissional ou pelo menos alguma ajuda experiente de outro membro do fórum. A maioria dos desenvolvedores contam com a Fórum MSDN para perguntas básicas sobre LINQ. Você pode ver uma listagem geral de fóruns na Microsoft Comunidade. Não se esqueça de experimentar o fórum específico do idioma para Visual Basic .NET.

menu