Sdílet prostřednictvím


Klasifikace standardní operátory dotazu podle způsobu spuštění

LINQ Objektů implementace metody operátor standardní dotaz spustit dva hlavní způsoby: okamžitou nebo odloženou.Operátory dotazu, které použít odložené spuštění dále rozdělit do dvou kategorií: streaming a datových proudů. Pokud víte, jak spustit dotaz různých operátorů, může pomoci porozumět výsledky, které obdržíte od daného dotazu.To platí zvláště pokud je změna zdroje dat nebo vytváření dotazu nad jiný dotaz.Toto téma se klasifikuje operátory standardní dotaz podle jejich způsob spuštění.

Způsoby provádění

Bb882641.collapse_all(cs-cz,VS.110).gifOkamžité

Okamžité provedení znamená, že zdroj dat je čtení a operace provedena v bodu v kódu kde je deklarována dotazu.Všechny standardní dotaz operátory, které jediné, agregující výsledek spustit okamžitě.

Bb882641.collapse_all(cs-cz,VS.110).gifOdloženo

Odložené spuštění provedena operace není v bodu v kódu kde je deklarována dotazu.Operace proběhne pouze při výčtu proměnnou dotazu, například pomocí foreach (For Each v Visual Basic) prohlášení.To znamená, že výsledky provedení dotazu závisí na obsahu zdroje dat při spuštění dotazu spíše, než když je definován dotaz.Pokud proměnná dotazu výčtu několikrát výsledky pokaždé lišit. Téměř všechny standardní dotaz operátory, jejíž návratový typ je IEnumerable<T> nebo IOrderedEnumerable<TElement> provedení odložených způsobem.

Operátory dotazu, které použít odložené spuštění můžete dále zařazují streaming nebo datových proudů.

Bb882641.collapse_all(cs-cz,VS.110).gifDatové proudy

Provozovatelé datových proudů, není nutné načíst zdrojová data před dávají prvky.V době spuštění datových proudů operátor provádí jeho fungování na každý prvek zdroje, jako je čtení a dává prvek případně.Datových proudů provozovatel i nadále číst prvky zdroje až do výsledku prvek lze vyrobit.To znamená, že více než jeden prvek zdrojového může přečíst vyrábět jeden prvek výsledek.

Bb882641.collapse_all(cs-cz,VS.110).gifStreaming

Provozovatelé datových proudů Non musí číst zdrojových dat před dávají prvek výsledek.Do této kategorie patří operace, jako je řazení nebo seskupování.V době spuštění-streaming operátory dotazu načíst zdrojová data, do struktury dat, provedení operace a výnos výsledné prvky.

Klasifikace tabulky

V následující tabulce klasifikuje každý standardní dotaz operátor metody podle jeho způsob spuštění.

[!POZNÁMKA]

Pokud operátor je označen ve dvou sloupcích, dvě vstupní sekvence se účastní operace a každé sekvence je vyhodnocovány jinak.V těchto případech je vždy první pořadí v seznamu parametrů, který je vyhodnocován v odložené, streaming způsobem.

Standardní operátor dotazu

Návratový typ

Okamžité spuštění

Odložené spuštění datových proudů

Odložené Non-Streaming spuštění

Aggregate

TSource

X

 

 

All<TSource>

Boolean

X

 

 

Any

Boolean

X

 

 

AsEnumerable<TSource>

IEnumerable<T>

 

X

 

Average

Jedinou číselnou hodnotu

X

 

 

Cast<TResult>

IEnumerable<T>

 

X

 

Concat<TSource>

IEnumerable<T>

 

X

 

Contains

Boolean

X

 

 

Count

Int32

X

 

 

DefaultIfEmpty

IEnumerable<T>

 

X

 

Distinct

IEnumerable<T>

 

X

 

ElementAt<TSource>

TSource

X

 

 

ElementAtOrDefault<TSource>

TSource

X

 

 

Empty<TResult>

IEnumerable<T>

X

 

 

Except

IEnumerable<T>

 

X

 X

First

TSource

X

 

 

FirstOrDefault

TSource

X

 

 

GroupBy

IEnumerable<T>

 

 

X

GroupJoin

IEnumerable<T>

 

X

Intersect

IEnumerable<T>

 

X

X

Join

IEnumerable<T>

 

X

X

Last

TSource

X

 

 

LastOrDefault

TSource

X

 

 

LongCount

Int64

X

 

 

Max

Jedinou číselnou hodnotu, TSource nebo TResult

X

 

 

Min

Jedinou číselnou hodnotu, TSource nebo TResult

X

 

 

OfType<TResult>

IEnumerable<T>

 

X

 

OrderBy

IOrderedEnumerable<TElement>

 

 

X

OrderByDescending

IOrderedEnumerable<TElement>

 

 

X

Range

IEnumerable<T>

 

X

 

Repeat<TResult>

IEnumerable<T>

 

X

 

Reverse<TSource>

IEnumerable<T>

 

 

X

Select

IEnumerable<T>

 

X

 

SelectMany

IEnumerable<T>

 

X

 

SequenceEqual

Boolean

X

 

 

Single

TSource

X

 

 

SingleOrDefault

TSource

X

 

 

Skip<TSource>

IEnumerable<T>

 

X

 

SkipWhile

IEnumerable<T>

 

X

 

Sum

Jedinou číselnou hodnotu

X

 

 

Take<TSource>

IEnumerable<T>

 

X

 

TakeWhile

IEnumerable<T>

 

X

 

ThenBy

IOrderedEnumerable<TElement>

 

 

X

ThenByDescending

IOrderedEnumerable<TElement>

 

 

X

ToArray<TSource>

TSource matice

X

 

 

ToDictionary

Dictionary<TKey, TValue>

X

 

 

ToList<TSource>

IList<T>

X

 

 

ToLookup

ILookup<TKey, TElement>

X

 

 

Union

IEnumerable<T>

 

X

 

Where

IEnumerable<T>

 

X

 

Viz také

Referenční dokumentace

Enumerable

Koncepty

Přehled operátorů standardní dotaz

Syntaxe dotazu výraz pro standardní operátory dotazu

LINQ to Objects