Classificação de operadores de consulta padrão pelo modo de execução
The LINQ para objetos de implementações de métodos de operadores de consulta padrão executar de duas maneiras principais: imediata ou adiada.Os operadores de consulta que usa a execução retardada Além disso podem ser divididos em duas categorias: fluxo contínuo e não streaming. Se você souber como executar os operadores de consulta diferentes, ele pode ajudar compreender os resultados que você obtiver de uma determinada consulta.Isso é especialmente verdadeiro se a fonte de dados está mudando ou se você estiver criando uma consulta de outra consulta.Este tópico classifica os operadores de consulta padrão de acordo com sua maneira de execução.
Maneiras de execução
Imediata
Execução imediata significa que a fonte de dados é lidos e a operação é executada no ponto de código onde a consulta é declarada.Todos os operadores de consulta padrão que retornam um resultado único e não enumerável executar imediatamente.
Foi adiado
Execução retardada significa que não é executar a operação no ponto de código onde a consulta é declarada.A operação é executada somente quando a variável de consulta é enumerada, por exemplo, usando um foreach (For Each em Visual Basic) demonstrativo. Isso significa que os resultados da execução da consulta dependem do Sumário da fonte de dados quando a consulta é executada em vez de quando a consulta é definida.Se a variável de consulta é enumerada várias vezes, os resultados podem ser diferentes cada vez. Quase todos os operadores de consulta padrão cujo tipo de retorno é IEnumerable<T> ou IOrderedEnumerable<TElement> executar na maneira adiada.
Operadores de consulta que usa a execução retardada Além disso podem ser classificados sistema autônomo streaming ou streaming não.
streaming
Operadores de streaming não são necessário ler todos os dados de fonte antes que eles produzem elementos.Ao time de execução, um operador de streaming executa sua operação em cada elemento de fonte sistema autônomo ele é lido e gera o elemento se apropriado.Um operador de streaming continua a ler os elementos de fonte até que um elemento de resultado pode ser produzido.Isso significa que mais de um elemento de fonte pode ser lido para produzir um elemento de resultado.
Não Streaming
Operadores de streaming não devem ler os dados de fonte antes que eles possam gerar um elemento de resultado.Operações sistema autônomo classificação ou agrupamento se encaixam nessa categoria.Ao time de execução, operadores de consulta de streaming não ler os dados de fonte, colocá-lo em uma estrutura de dados, executar a operação e produzem elementos resultantes.
Tabela de classificação
A tabela a seguir classifica cada método do operador de consulta padrão de acordo com a seu método de execução.
Observação: |
---|
Se um Operador i s marcado em duas colunas, dois entrada seqüências são envolvidos na operação e cada sequência é avaliada diferente .Nesses casos, ele é sempre a primeira sequência na lista de parâmetros que é avaliada em um adiada, streaming forma . |
Operador de consulta padrão |
Tipo de retorno |
Execução imediata |
Adiar execução streaming |
Adiar execução não Streaming |
---|---|---|---|---|
TSource |
X |
|
|
|
X |
|
|
||
X |
|
|
||
X |
|
|||
Único valor numérico |
X |
|
|
|
|
X |
|
||
|
X |
|
||
X |
|
|
||
X |
|
|
||
|
X |
|
||
|
X |
|
||
TSource |
X |
|
|
|
TSource |
X |
|
|
|
X |
|
|
||
X |
X |
|||
TSource |
X |
|
|
|
TSource |
X |
|
|
|
|
|
X |
||
X |
X |
|||
X |
X |
|||
X |
X |
|||
TSource |
X |
|
|
|
TSource |
X |
|
|
|
X |
|
|
||
Único valor numérico, TSource ou TResult |
X |
|
|
|
Único valor numérico, TSource ou TResult |
X |
|
|
|
|
X |
|
||
|
|
X |
||
|
|
X |
||
|
X |
|
||
|
X |
|
||
|
|
X |
||
|
X |
|
||
|
X |
|
||
X |
|
|
||
TSource |
X |
|
|
|
TSource |
X |
|
|
|
|
X |
|
||
|
X |
|
||
Único valor numérico |
X |
|
|
|
|
X |
|
||
|
X |
|
||
|
|
X |
||
|
|
X |
||
Matriz TSource |
X |
|
|
|
X |
|
|
||
X |
|
|
||
X |
|
|
||
|
X |
|
||
|
X |
|
Consulte também
Conceitos
Visão geral de operadores de consulta padrão
Sintaxe de expressão de consulta para operadores de consulta padrão