Udostępnij za pośrednictwem


Klasyfikacja standardowe operatory kwerendy przez sposób wykonania

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

Bb882641.collapse_all(pl-pl,VS.110).gifNatychmiastowe

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.

Bb882641.collapse_all(pl-pl,VS.110).gifOdroczone

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<T> lub IOrderedEnumerable<TElement> w sposób odroczonego.

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

Bb882641.collapse_all(pl-pl,VS.110).gifPrzesył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.

Bb882641.collapse_all(pl-pl,VS.110).gifPrzesył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

TSource

X

 

 

All<TSource>

Boolean

X

 

 

Any

Boolean

X

 

 

AsEnumerable<TSource>

IEnumerable<T>

 

X

 

Average

Pojedyncza wartość liczbowa

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

Pojedyncza wartość liczbowa, TSource lub TResult

X

 

 

Min

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

Pojedyncza wartość liczbowa

X

 

 

Take<TSource>

IEnumerable<T>

 

X

 

TakeWhile

IEnumerable<T>

 

X

 

ThenBy

IOrderedEnumerable<TElement>

 

 

X

ThenByDescending

IOrderedEnumerable<TElement>

 

 

X

ToArray<TSource>

Tablica TSource

X

 

 

ToDictionary

Dictionary<TKey, TValue>

X

 

 

ToList<TSource>

IList<T>

X

 

 

ToLookup

ILookup<TKey, TElement>

X

 

 

Union

IEnumerable<T>

 

X

 

Where

IEnumerable<T>

 

X

 

Zobacz też

Informacje

Enumerable

Koncepcje

Omówienie operatory kwerendy standardowe

Składnia wyrażenie kwerendy standardowe operatory kwerendy

LINQ do obiektów