Udostępnij za pośrednictwem


Klasyfikacja standardowych operatorów zapytań w oparciu o sposób działania

LINQ Do obiektów implementacje metod operator kwerendy standardowe wykonanie w jednym z dwóch sposobów: natychmiastowego lub opóźnionego.Operatory użyć odroczonego wykonanie kwerendy można dodatkowo podzielić na dwie kategorie: przesyłanie strumieniowe i strumieniowej transmisji. Jeśli wiesz, jak wykonać kwerendy różnych podmiotów gospodarczych, to może pomóc lepiej zrozumieć wyniki, które można uzyskać od danej kwerendy.Dotyczy to szczególnie, jeśli źródło danych jest zmieniany, lub jeśli tworzysz kwerendy na innej kwerendy.W tym temacie klasyfikuje operatory kwerendy standardowe zgodnie z ich sposób wykonywania.

Sposób wykonania

Natychmiastowe

Natychmiastowe wykonanie oznacza, że źródło danych jest odczytywany i operacja jest wykonywana w punkcie w kodzie, gdy kwerenda jest zadeklarowany.Wszystkie operatory kwerendy standardowe, zwracających wynik pojedynczego, agregującym wykonaj natychmiast.

Odroczone

Wykonanie odroczonego oznacza, że operacja jest nie wykonywana w punkcie w kodzie gdy kwerenda jest zadeklarowany.Operacja jest wykonywana tylko wtedy, gdy zmienna kwerendy jest wyliczany, na przykład przy użyciu foreach (For Each w Visual Basic) instrukcji.Oznacza to, że wyniki wykonania kwerendy zależy od zawartości źródła danych po wykonaniu kwerendy zamiast od tego, kiedy kwerenda jest zdefiniowana.Jeśli zmienna kwerendy jest wyliczana wiele razy, wyniki mogą różnić się każdym. Prawie wszystkich operatorów standardowej kwerendy, których typ zwracany jest IEnumerable lub IOrderedEnumerable w sposób odroczonego.

Operatory kwerendy używające odroczonego wykonanie można dodatkowo klasyfikowane jako przesyłanie strumieniowe lub strumieniowej transmisji.

Przesyłanie strumieniowe

Operatorzy przesyłania strumieniowego nie mają odczytać wszystkich danych źródłowych przed dają one elementy.W czasie wykonywania przesyłania strumieniowego operator wykonuje jego operacji na każdy element źródłowy, jak jest do odczytu i zwraca element, jeżeli jest to właściwe.Strumieniowych operator kontynuuje się do odczytu elementów źródłowych, aż element wynik można wyprodukować.Oznacza to, że więcej niż jeden element źródłowy może odczytać do wyprodukowania jednego elementu wynik.

Przesyłanie strumieniowe

Operatory przesyłania strumieniowego inne niż musi odczytać wszystkich danych źródłowych przed plon z elementu wynik.Operacje takie jak sortowania lub grupowania należą do tej kategorii.W czasie wykonywania operatory kwerendy strumieniowej transmisji odczytu danych źródłowych, wprowadzone struktury danych, wykonać operację i plon wynikowy elementów.

Klasyfikacja tabeli

Poniższa tabela klasyfikuje każdej metody operator kwerendy standardowe zgodnie z jego metodę realizacji.

[!UWAGA]

Jeśli podmiot gospodarczy jest oznaczony w dwóch kolumnach, dwóch sekwencji wejściowych są zaangażowane w działalność i każda sekwencja jest szacowane w różny sposób.W takich przypadkach jest zawsze pierwszy sekwencji na liście parametrów, której wartość jest wyznaczana w odroczone, przesyłanie strumieniowe sposób.

Operator kwerendy standardowe

Zwracany typ

Natychmiastowe wykonanie

Odroczone wykonanie przesyłania strumieniowego

Odroczone, Non-Streaming wykonanie

Aggregate``1

TSource

X

 

 

All``1

Boolean

X

 

 

Any``1

Boolean

X

 

 

AsEnumerable``1

IEnumerable

 

X

 

Average

Pojedyncza wartość liczbowa

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

Pojedyncza wartość liczbowa, TSource lub TResult

X

 

 

Min

Pojedyncza wartość liczbowa, TSource lub 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

Pojedyncza wartość liczbowa

X

 

 

Take``1

IEnumerable

 

X

 

TakeWhile``1

IEnumerable

 

X

 

ThenBy``2

IOrderedEnumerable

 

 

X

ThenByDescending``2

IOrderedEnumerable

 

 

X

ToArray``1

Tablica TSource

X

 

 

ToDictionary``2

Dictionary

X

 

 

ToList``1

IList

X

 

 

ToLookup``2

ILookup

X

 

 

Union``1

IEnumerable

 

X

 

Where``1

IEnumerable

 

X

 

Zobacz też

Informacje

Enumerable

Koncepcje

Standardowe operatory zapytań — Omówienie

Składnia wyrażeń dla standardowych operatorów zapytań

LINQ do obiektów