Índice:
Vídeo: C# Tutorial 15 LINQ Tutorial 2024
Por John Paul Mueller
Language INtegrated Query (LINQ) é uma característica do. NET Framework que expande seu alcance bem além das coisas Microsoft. Você pode usar o LINQ para consultar apenas sobre qualquer coisa, conhecendo operadores essenciais, juntamente com alguns operadores de consulta adicionais. Se você ficar um pouco perdido ao longo do caminho, a Microsoft oferece uma grande quantidade de recursos através de sua rede, blogs e fóruns.
Operadores LINQ essenciais
Language INtegrated Query (LINQ) usa uma incrível variedade de operadores. Um operador é uma palavra especial que informa LINQ que tipo de consulta executar, como verificar se dois valores são iguais. Os operadores podem encontrar centenas, mas na maioria dos casos, você realizará a maioria das tarefas usando apenas alguns operadores padrão. Abaixo está uma lista de operadores essenciais do LINQ.
Operador | Descrição |
---|---|
de | Define o objeto temporário usado para executar uma consulta. Pense em
este operador como definindo o objeto de elemento individual a partir do qual você obtém todos os outros dados para a consulta. Por exemplo, você escolhe quais dados aparecerão na saída e como esses dados são pedidos com base na variável temporária. O operador é o único que deve aparecer em todas as consultas que você crie. |
em | Define a fonte de dados usada para obter os dados. Uma fonte de dados
pode ser qualquer objeto suportado por um provedor de dados. O provedor cria uma conexão entre a fonte de dados e a consulta LINQ. Por exemplo, uma fonte de dados pode incluir um objeto, como uma caixa de lista , um arquivo XML, uma tabela do SQL Server, Active Directory, um serviço da Web ou apenas sobre qualquer outra coisa que você queira usar para coletar informações . É possível trabalhar diretamente com arquivos em seu disco rígido usando uma consulta LINQ. Uma consulta pode conter tantos pares correspondentes de e em operadores como é necessário para descrever completamente as fontes de dados usadas na consulta. |
selecione | Escolhe as informações de saída para a consulta. A saída
mais simples é o mesmo objeto que você define usando o operador from. No entanto, um operador selecionado pode incluir valores calculados, matrizes de dados ou propriedades de objetos individuais. O fator limitante na maioria dos casos é a funcionalidade oferecida pelo provedor LINQ . Os quatro fornecedores padrão incluem a gama completa de comportamentos selecionados do operador. Uma consulta contém apenas um operador selecionado e este operador deve aparecer como o último operador na consulta . |
onde | Descreve as condições sob as quais um elemento aparece como parte
da saída.O operador onde sempre requer um argumento booleano para definir as condições de saída. Você pode incluir o número de operadores onde necessário para descrever completamente os critérios de saída. O LINQ interpreta o onde os operadores na ordem em que aparecem na consulta, portanto, a ordem é importante. Quando uma consulta não funciona conforme previsto, tente alterar a ordem de onde os operadores descrevem melhor os requisitos de saída. Use o depurador para ajudar a localizar erros no fluxo lógico de onde os operadores. |
orderby | Define a ordem em que os elementos de saída aparecem. O
operador de ordem mais simples depende do objeto que você define usando o operador . No entanto, um operador de pedido pode aceitar qualquer declaração que defina um argumento de ordenação lógica como entrada - normalmente numérico, alfabético, símbolo ou binário. Você pode usar quantos operadores orderby como necessários para descrever completamente a ordem de saída dos dados. Tal como acontece com o operador , o LINQ interpreta o operador orderby na ordem em que ele aparece na consulta. Consequentemente, a ordem dos operadores de pedidos é importante. |
junte-se e em | Combina duas ou mais fontes de dados para criar uma vista composta de
os dados. As fontes de dados não precisam contar com os mesmos provedores. Você pode usar tantos operadores de associação como necessários para descrever completamente todas as fontes de dados usadas para uma consulta . O operador on define o critério usado para combinar duas fontes de dados. Emparelhe a junção e as operadoras para criar uma fonte de dados completa. |
deixe | Cria um valor calculado para uso dentro da consulta. Os valores calculados
tornam as consultas complexas mais fáceis de formular. Além disso, você pode passar um valor calculado para o chamador para fornecer informações de saída adicionais. Em muitos casos, o operador de arrendamento fornece os meios para passar dados que o LINQ normalmente não passará devido a um conflito de nomeação. Você pode usar como muitos permitem que os operadores, conforme necessário , forneçam a funcionalidade de consulta completa, mas você deve limitar a utilização de para situações em que um valor calculado aumenta a velocidade da consulta. |
Explorando Grupos de Operadores de Consulta Standard do LINQ
O uso de operadores de consulta padrão torna consideravelmente mais fácil o trabalho com a Linguagem Integrated Query (LINQ). De muitas maneiras, você provavelmente já trabalhou com operadores de consulta simples. Por exemplo, quando você usa a palavra-chave orderby, você está usando um operador de consulta no grupo de classificação de operadores de consulta padrão. Quando você usa a palavra-chave where, você está usando outro operador de consulta, mas desta vez está no grupo de filtragem.
Aqui está uma lista de grupos de operadores de consulta padrão e onde você pode encontrar informações adicionais.
Grupo | Descrição do grupo | Operadores incluídos | Informações adicionais |
---|---|---|---|
Operações de agregação | Os operadores de agregação o ajudam a executar tarefas matemáticas
com uma fonte de dados. |
Agregado, Média, Contagem, LongCount, Max, Min e Sum | Microsoft
Rede do desenvolvedor: Operações de agregação |
Operações de concatenação | O único operador de concatenação permite combinar duas seqüências
. |
Concat | Microsoft
Rede de desenvolvedores: Operações de concatenação |
Convertendo tipos de dados | A conversão de tipos de dados vem em duas formas: diferido e
não diferido. Os operadores de conversão diferidos convertem os resultados de uma consulta em um tipo específico, pois o código interpreta o conjunto de resultados . Os operadores de conversão não diferidos alteram a saída de uma consulta para um tipo específico. |
AsEnumerable, AsQueryable, Cast,
OfType, ToArray, ToDictionary, ToList, e ToLookup |
Microsoft
Rede do desenvolvedor: Convertendo tipos de dados |
Operações do elemento | Os operadores do elemento ajudam você seleciona um elemento particular em uma seqüência , mesmo quando você não conhece nenhuma informação de identificação
sobre esse elemento, como seu nome. |
ElementAt, ElementAtOrDefault, First, FirstOrDefault, Last,
LastOrDefault, Single e SingleOrDefault |
Microsoft
Developer Network: Element Operations |
Operações de igualdade | O único operador de igualdade ajuda você a determinar se duas seqüências
são iguais (o número de elementos e o conteúdo de cada elemento são iguais). |
SequenceEqual | Microsoft
Rede de desenvolvedores: Operações de igualdade |
Filtragem de dados | Os operadores de filtragem ajudam a excluir ou incluir elementos em
uma seqüência com base em critérios específicos. |
OfType e Where | Microsoft
Rede de desenvolvedores: dados de filtragem |
Operações de geração | Os operadores de geração criam uma nova seqüência com base nos critérios
que você especifica. |
DefaultIfEmpty, Empty, Range e
Repetir |
Microsoft
Rede do desenvolvedor: Operações de geração |
Agrupar dados | Os operadores de agrupamento o ajudam a classificar os dados por uma característica
específica, como como a primeira letra em um grupo de strings. |
GroupBy e ToLookup | Microsoft
Rede do desenvolvedor: agrupando dados |
Operações de associação | As operadoras de associação aceitam duas ou mais sequências como entrada e
criam uma única seqüência de saída com base em uma associação específica tipo e os critérios de junção. |
Join e GroupJoin | Microsoft
Rede do desenvolvedor: Participe de operações |
Particionando dados | Os operadores de particionamento ajudam você a seção uma seqüência para
localizar informações específicas. |
SkipWow, SkipWhile, Take e
TakeWhile |
Microsoft
Rede de desenvolvedores: Partitioning Data |
Operações de projeção | As operadoras de projeção criam um novo tipo com base na consulta
que você cria. |
Selecione e selecioneManual | Microsoft
Rede de desenvolvedores: Operações de projeção |
Operações de quantificador | Os operadores de quantificadores ajudam você a selecionar elementos com base em
critérios específicos. Você usa esses operadores para determinar se nenhum, um ou mais de um elemento atendem aos critérios selecionados. |
Tudo, Qualquer,
e Contém |
Microsoft
Rede de desenvolvedores: operações de quantificador |
Definir operações | Os operadores definidos criam conjuntos. Pense na aritmética definida que você
realizou na escola. |
Distinct, Excepto, Intersect,
e Union |
Microsoft
Rede do desenvolvedor: configure operações |
Dados de classificação | Os operadores de classificação ajudam a colocar uma seqüência em uma ordem
específica. |
OrderBy, OrderByDescending, ThenBy, ThenByDescending e Reverse | Microsoft
Rede do desenvolvedor: ordenando dados |
Microsoft LINQ Resources
É sempre útil saber onde você pode obter informações e ferramentas adicionais e aprimoramentos ao criar seus aplicativos de Consulta de Idioma INtegrado (LINQ). Aqui está uma lista de recursos Microsoft úteis para o LINQ.
Microsoft Developer Network
O Microsoft Developer Network (MSDN) sempre forneceu o material de linha de base para todos os produtos de desenvolvimento da Microsoft. Você encontrará um armazém inteiro de informações lá - mais do que qualquer ser humano provavelmente pode ler durante toda a vida. Conseqüentemente, você precisa peneirar as informações com cuidado ou você se perderá rapidamente no labirinto MSDN. O site MSDN principal para trabalhar com o LINQ fornece informações, recursos e acesso a outras informações, como amostras.
Microsoft blogs
A Microsoft quer que você saiba como trabalhar com o LINQ. No passado, você encontraria muitas das informações que você precisa no MSDN. O site MSDN ainda é um bom lugar para ir, mas muitos desenvolvedores da Microsoft reclamaram que era um pouco formal (os artigos são bastante difíceis de entender em alguns casos) e não houve qualquer oportunidade de interagir com os autores. Os blogs da Microsoft fornecem um ambiente mais amigável para obter informações onde você pode realmente corresponder com o autor. Aqui estão alguns blogs que você deseja visitar ao trabalhar com o LINQ:
-
Beth Massi: Compartilhando o bem que é o Visual Basic (VB)
-
Blog da comunidade de Charlie Calvert
-
BLOG de Wriju:. NET e tudo
A maioria desses blogs são genéricos - todos eles discutem problemas de programação de algum tipo. Consequentemente, você encontrará uma mistura de tópicos em cada blog. O autor pode discutir o sistema de arquivos em um post e o LINQ em outro. Cada um tem entradas específicas do LINQ que você pode procurar usando os recursos de pesquisa no blog. Embora Charlie Calvert tenha deixado a Microsoft, seu blog contém uma riqueza de informações LINQ gerais.
Fóruns Microsoft
Se você não pensa que está recebendo bastante interação com a Microsoft através de um blog, os funcionários da Microsoft frequentemente freqüentam os fóruns da Microsoft também. Fazer o upload de uma mensagem para o fórum correto pode ajudá-lo com alguma ajuda profissional ou, pelo menos, alguma ajuda experiente de outro membro do fórum. A maioria dos desenvolvedores confia no fórum MSDN para perguntas básicas sobre o LINQ. Você pode ver uma listagem geral de fóruns na Comunidade Microsoft. Não se esqueça de experimentar o fórum específico do idioma para o Visual Basic. LÍQUIDO.