Sdílet prostřednictvím


Klasifikace standardních operátorů dotazu podle metody provedení

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í

Okamž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ě.

Odlož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 nebo IOrderedEnumerable 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ů.

Datové 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.

Streaming

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``1

TSource

X

 

 

All``1

Boolean

X

 

 

Any``1

Boolean

X

 

 

AsEnumerable``1

IEnumerable

 

X

 

Average

Jedinou číselnou hodnotu

X

 

 

Cast``1

IEnumerable

 

X

 

Concat``1

IEnumerable

 

X

 

Contains``1

Boolean

X

 

 

Count``1

Int32

X

 

 

DefaultIfEmpty``1

IEnumerable

 

X

 

Distinct``1

IEnumerable

 

X

 

ElementAt``1

TSource

X

 

 

ElementAtOrDefault``1

TSource

X

 

 

Empty``1

IEnumerable

X

 

 

Except``1

IEnumerable

 

X

 X

First``1

TSource

X

 

 

FirstOrDefault``1

TSource

X

 

 

GroupBy``2

IEnumerable

 

 

X

GroupJoin

IEnumerable

 

X

Intersect

IEnumerable

 

X

X

Join

IEnumerable

 

X

X

Last``1

TSource

X

 

 

LastOrDefault``1

TSource

X

 

 

LongCount``1

Int64

X

 

 

Max

Jedinou číselnou hodnotu, TSource nebo TResult

X

 

 

Min

Jedinou číselnou hodnotu, TSource nebo TResult

X

 

 

OfType``1

IEnumerable

 

X

 

OrderBy``2

IOrderedEnumerable

 

 

X

OrderByDescending``2

IOrderedEnumerable

 

 

X

Range

IEnumerable

 

X

 

Repeat``1

IEnumerable

 

X

 

Reverse``1

IEnumerable

 

 

X

Select``2

IEnumerable

 

X

 

SelectMany

IEnumerable

 

X

 

SequenceEqual

Boolean

X

 

 

Single``1

TSource

X

 

 

SingleOrDefault``1

TSource

X

 

 

Skip``1

IEnumerable

 

X

 

SkipWhile``1

IEnumerable

 

X

 

Sum

Jedinou číselnou hodnotu

X

 

 

Take``1

IEnumerable

 

X

 

TakeWhile``1

IEnumerable

 

X

 

ThenBy``2

IOrderedEnumerable

 

 

X

ThenByDescending``2

IOrderedEnumerable

 

 

X

ToArray``1

TSource matice

X

 

 

ToDictionary``2

Dictionary

X

 

 

ToList``1

IList

X

 

 

ToLookup``2

ILookup

X

 

 

Union``1

IEnumerable

 

X

 

Where``1

IEnumerable

 

X

 

Viz také

Referenční dokumentace

Enumerable

Koncepty

Přehled standardních operátorů dotazu

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

LINQ na objekty