LINQ - Operadores de consulta
Um conjunto de métodos de extensão formando um padrão de consulta é conhecido como Operadores de Consulta Padrão LINQ. Como blocos de construção de expressões de consulta LINQ, esses operadores oferecem uma variedade de recursos de consulta, como filtragem, classificação, projeção, agregação, etc.
Os operadores de consulta padrão do LINQ podem ser categorizados nos seguintes com base em sua funcionalidade.
- Operadores de filtragem
- Operadores de adesão
- Operações de Projeção
- Operadores de classificação
- Operadores de agrupamento
- Conversions
- Concatenation
- Aggregation
- Quantifier Operations
- Operações de Partição
- Operações de Geração
- Operações de conjunto
- Equality
- Operadores de elemento
Operadores de filtragem
A filtragem é uma operação para restringir o conjunto de resultados de forma que ele tenha apenas elementos selecionados que satisfaçam uma condição específica.
Operador | Descrição | Sintaxe de expressão de consulta C # | Sintaxe de expressão de consulta VB |
---|---|---|---|
Onde | Filtrar valores com base em uma função de predicado | Onde | Onde |
OfType | Filtre os valores com base em sua capacidade de ser um tipo especificado | Não aplicável | Não aplicável |
Operadores de adesão
A união refere-se a uma operação na qual as fontes de dados com relacionamentos difíceis de acompanhar entre si de forma direta são direcionadas.
Operador | Descrição | Sintaxe de expressão de consulta C # | Sintaxe de expressão de consulta VB |
---|---|---|---|
Junte-se | O operador junta duas sequências com base em chaves correspondentes | entrar ... em ... em ... é igual a ... | De x In…, y In… Onde xa = ya |
GroupJoin | Junte duas sequências e agrupe os elementos correspondentes | entrar ... em ... em ... é igual a ... em ... | Participar do grupo… Em… Em… |
Operações de Projeção
Projeção é uma operação na qual um objeto é transformado em uma forma totalmente nova, com apenas propriedades específicas.
Operador | Descrição | Sintaxe de expressão de consulta C # | Sintaxe de expressão de consulta VB |
---|---|---|---|
Selecione | O operador projeta valores com base em uma função de transformação | selecionar | Selecione |
SelectMany | O operador projeta as sequências de valores que são baseadas em uma função de transformação, bem como os achata em uma única sequência | Use várias cláusulas from | Use várias cláusulas From |
Operadores de classificação
Uma operação de classificação permite ordenar os elementos de uma sequência com base em um ou mais atributos.
Operador | Descrição | Sintaxe de expressão de consulta C # | Sintaxe de expressão de consulta VB |
---|---|---|---|
Ordenar por | O operador classifica os valores em ordem crescente | ordenar por | Ordenar por |
OrderByDescending | O operador classifica os valores em ordem decrescente | ordem por ... decrescente | Ordem por ... Decrescente |
ThenBy | Executa uma classificação secundária em ordem crescente | ordenar por …, … | Ordenar por …, … |
ThenByDescending | Executa uma classificação secundária em ordem decrescente | ordem por ..., ... decrescente | Ordem por ..., ... decrescente |
Reverter | Executa uma reversão da ordem dos elementos em uma coleção | Não aplicável | Não aplicável |
Operadores de agrupamento
Os operadores colocam dados em alguns grupos com base em um atributo compartilhado comum.
Operador | Descrição | Sintaxe de expressão de consulta C # | Sintaxe de expressão de consulta VB |
---|---|---|---|
GroupBy | Organize uma sequência de itens em grupos e retorne-os como uma coleção IEnumerable do tipo IGrouping <chave, elemento> | grupo ... por -ou- grupo ... por ... em ... | Grupo ... Por ... Em ... |
Procurar | Execute uma operação de agrupamento em que uma sequência de pares de chaves é retornada | Não aplicável | Não aplicável |
Conversões
Os operadores alteram o tipo de objetos de entrada e são usados em uma ampla variedade de aplicativos.
Operador | Descrição | Sintaxe de expressão de consulta C # | Sintaxe de expressão de consulta VB |
---|---|---|---|
AsEnumerable | Retorna a entrada digitada como IEnumerable <T> | Não aplicável | Não aplicável |
AsQueryable | Um IEnumerable (genérico) é convertido em um IQueryable (genérico) | Não aplicável | Não aplicável |
Fundida | Executa a conversão de elementos de uma coleção para um tipo especificado | Use uma variável de intervalo digitada explicitamente. Ex: da string str em palavras | De ... como ... |
OfType | Filtra os valores com base em seus, dependendo de sua capacidade de ser convertido para um tipo específico | Não aplicável | Não aplicável |
ToArray | Força a execução da consulta e faz a conversão de uma coleção em uma matriz | Não aplicável | Não aplicável |
ToDictionary | Com base em uma função de seletor de chave, defina elementos em um Dictionary <TKey, TValue> e força a execução de uma consulta LINQ | Não aplicável | Não aplicável |
Listar | Força a execução de uma consulta convertendo uma coleção em uma Lista <T> | Não aplicável | Não aplicável |
Procurar | Força a execução de uma consulta e coloca elementos em Lookup <TKey, TElement> com base em uma função de seletor de chave | Não aplicável | Não aplicável |
Concatenação
Executa a concatenação de duas sequências e é bastante semelhante ao operador União em termos de operação, exceto pelo fato de que isso não remove duplicatas.
Operador | Descrição | Sintaxe de expressão de consulta C # | Sintaxe de expressão de consulta VB |
---|---|---|---|
Concat | Duas sequências são concatenadas para a formação de uma única sequência. | Não aplicável | Não aplicável |
Agregação
Executa qualquer tipo de agregação desejada e permite a criação de agregações personalizadas no LINQ.
Operador | Descrição | Sintaxe de expressão de consulta C # | Sintaxe de expressão de consulta VB |
---|---|---|---|
Agregar | Opera nos valores de uma coleção para realizar uma operação de agregação personalizada | Não aplicável | Não aplicável |
Média | O valor médio de uma coleção de valores é calculado | Não aplicável | Agregar… em… na média () |
Contagem | Conta os elementos que satisfazem uma função de predicado na coleção | Não aplicável | Agregar… em… na contagem () |
LonCount | Conta os elementos que satisfazem uma função de predicado em uma coleção enorme | Não aplicável | Agregar… Em… Em LongCount () |
Max | Descubra o valor máximo em uma coleção | Não aplicável | Agregar… em… no máximo () |
Min | Descubra o valor mínimo existente em uma coleção | Não aplicável | Agregar… em… em min () |
Soma | Descubra a soma dos valores em uma coleção | Não aplicável | Agregar… em… na soma () |
Quantifier Operations
Esses operadores retornam um valor booleano, ou seja, True ou False quando alguns ou todos os elementos de uma sequência satisfazem uma condição específica.
Operador | Descrição | Sintaxe de expressão de consulta C # | Sintaxe de expressão de consulta VB |
---|---|---|---|
Todos | Retorna um valor 'True' se todos os elementos de uma sequência satisfizerem uma condição de predicado | Não aplicável | Agregar ... em ... em todos (...) |
Qualquer | Determina, pesquisando uma sequência, se algum elemento da mesma satisfaz uma condição especificada | Não aplicável | Agregar… em… em qualquer () |
Contém | Retorna um valor 'Verdadeiro' se descobrir que um elemento específico está lá em uma sequência se a sequência não contiver esse elemento específico, o valor 'falso' é retornado | Não aplicável | Não aplicável |
Operadores de partição
Divida uma sequência de entrada em duas seções separadas sem reorganizar os elementos da sequência e depois retornar um deles.
Operador | Descrição | Sintaxe de expressão de consulta C # | Sintaxe de expressão de consulta VB |
---|---|---|---|
Pular | Pula um número especificado de elementos em uma sequência e retorna os restantes | Não aplicável | Pular |
SkipWhile | Igual ao de Skip, com a única exceção de que o número de elementos a serem ignorados é especificado por uma condição booleana | Não aplicável | Pular enquanto |
Levar | Pegue um determinado número de elementos de uma sequência e pule os restantes | Não aplicável | Levar |
TakeWhile | O mesmo que Take, exceto pelo fato de que o número de elementos a serem tomados são especificados por uma condição booleana | Não aplicável | Demorar um pouco |
Operações de Geração
Uma nova sequência de valores é criada por operadores geracionais.
Operador | Descrição | Sintaxe de expressão de consulta C # | Sintaxe de expressão de consulta VB |
---|---|---|---|
DefaultIfEmpty | Quando aplicado a uma sequência vazia, gera um elemento padrão dentro de uma sequência | Não aplicável | Não aplicável |
Vazio | Retorna uma sequência vazia de valores e é o operador geracional mais simples | Não aplicável | Não aplicável |
Alcance | Gera uma coleção com uma sequência de inteiros ou números | Não aplicável | Não aplicável |
Repetir | Gera uma sequência contendo valores repetidos de um comprimento específico | Não aplicável | Não aplicável |
Operações de conjunto
Existem quatro operadores para as operações definidas, cada um produzindo um resultado com base em critérios diferentes.
Operador | Descrição | Sintaxe de expressão de consulta C # | Sintaxe de expressão de consulta VB |
---|---|---|---|
Distinto | Resulta em uma lista de valores únicos de uma coleção, filtrando dados duplicados, se houver | Não aplicável | Distinto |
Exceto | Compara os valores de duas coleções e retorna aqueles de uma coleção que não estão na outra coleção | Não aplicável | Não aplicável |
Cruzar | Retorna o conjunto de valores encontrados como idênticos em duas coleções separadas | Não aplicável | Não aplicável |
União | Combina o conteúdo de duas coleções diferentes em uma única lista que também sem qualquer conteúdo duplicado | Não aplicável | Não aplicável |
Igualdade
Compara duas sentenças (enumeráveis) e determina se são uma correspondência exata ou não.
Operador | Descrição | Sintaxe de expressão de consulta C # | Sintaxe de expressão de consulta VB |
---|---|---|---|
SequenceEqual | Resulta um valor booleano se duas sequências forem idênticas entre si | Não aplicável | Não aplicável |
Operadores de elemento
Exceto o DefaultIfEmpty, todos os outros oito operadores de elemento de consulta padrão retornam um único elemento de uma coleção.
Operador | Descrição | Sintaxe de expressão de consulta C # | Sintaxe de expressão de consulta VB |
---|---|---|---|
ElementAt | Retorna um elemento presente em um índice específico em uma coleção | Não aplicável | Não aplicável |
ElementAtOrDefault | O mesmo que ElementAt, exceto pelo fato de que também retorna um valor padrão no caso do índice específico estar fora do intervalo | Não aplicável | Não aplicável |
Primeiro | Recupera o primeiro elemento em uma coleção ou o primeiro elemento que satisfaz uma condição específica | Não aplicável | Não aplicável |
FirstOrDefault | O mesmo que Primeiro, exceto pelo fato de que também retorna um valor padrão no caso de não haver tais elementos | Não aplicável | Não aplicável |
Último | Recupera o último elemento presente em uma coleção ou o último elemento que satisfaça uma condição específica | Não aplicável | Não aplicável |
LastOrDefault | Igual ao Último, exceto pelo fato de que também retorna um valor padrão no caso de não haver qualquer um desses elementos | Não aplicável | Não aplicável |
solteiro | Retorna o elemento solitário de uma coleção ou o elemento solitário que satisfaz uma determinada condição | Não aplicável | Não aplicável |
SingleOrDefault | O mesmo que Único, exceto que também retorna um valor padrão se não houver nenhum elemento solitário | Não aplicável | Não aplicável |
DefaultIfEmpty | Retorna um valor padrão se a coleção ou lista estiver vazia ou nula | Não aplicável | Não aplicável |