Aracılığıyla paylaş


Standart Sorgu İşleçlerinin Yürütme Yöntemine Göre Sınıflandırılması

LINQ Nesnelere standart sorgu işleci yöntemleri uygulamaları iki ana yoldan biriyle yürütme: hemen veya ertelenmiş.Ertelenmiş yürütme kullanın sorgu operators ayrıca iki kategoriye ayrılabilir: akış ve akış olmayan. Nasıl farklı sorgu işleçleri yürütme biliyorsanız, onu belirli bir sorgudan elde sonuçları anlamanıza yardımcı olabilir.Veri kaynağını değiştirme veya başka bir sorgu üstünde bir sorgu oluşturuyorsanız bu özellikle doğrudur.Bu konuda standart sorgu işleçleri kendi şekilde yürütme göre sınıflandırır.

Açıyorsunuz yürütme

Hemen

Hemen bir yürütme, veri kaynağına okuma ve işlem kodu noktasında sorgu burada bildirilmiş gerçekleştirilir anlamına gelir.Sýralanabilir olmayan, tek bir sonuç tüm standart sorgu operatörleri hemen çalıştırılacak.

Ertelenmiş

Ertelenmiş yürütme işlemi kodu noktasında sorgu burada bildirilmiş gerçekleştirildiğini değil anlamına gelir.Yalnızca sorgu değişkeni, örneğin kullanılarak numaralandırılır işlemi gerçekleştirilir bir foreach (For Each , Visual Basic) ifadesi.Bu sorgu, tanımlı yerine sorgu çalıştırıldığında sorgu yürütme sonuçlarını veri kaynağının içeriğine bağlı anlamına gelir.Sorgu değişkeni birden çok kez görüntülenir, sonuçları, her zaman farklılık gösterebilir. Dönüş türü olan hemen hemen tüm standart sorgu işleçleri IEnumerable veya IOrderedEnumerable ertelenmiş bir şekilde yürütmek.

Ertelenmiş yürütme kullanan sorgu operators ayrıca akış veya akışa alınmayan olarak sınıflandırılabilir.

Akış

Akış işleçleri oldukları öğeleri verim önce tüm kaynak verilerini okumak gerekmez.Salt okunur ve uygunsa öğesi üretir gibi yürütme zaman akış işleci, her kaynak öğesinde işlemi gerçekleştirir.Akış operatör sonuç öğesiyle üretilebilecek kadar kaynak öğelerden okumaya devam eder.Bu, birden fazla kaynak öğesinde bir sonuç öğesiyle üretmek için okuma anlamına gelir.

Akış

Sonuç öğesiyle getirebilecek önce işleçler olmayan akış tüm kaynak verilerinin okumalısınız.Sıralama veya gruplandırma gibi işlemler bu kategoriye girer.Yürütme zaman akış olmayan sorgu operatörleri tüm kaynak veri okuma, bir veri yapısı koyun, işlemi gerçekleştirmek ve verim elde edilen öğeleri.

Sınıflandırma tablo

Aşağıdaki tabloda her standart sorgu işleci yöntemi yürütme kendi yöntemine göre sınıflandırır.

[!NOT]

Bir işleç iki sütunda işaretlenmiştir, iki giriş sıraları işleme katılan ve her sıra farklı değerlendirilir.Bu gibi durumlarda her zaman ilk sırada değerlendirilir parametre listesi olduğu şekilde ertelenen, akış.

Standart sorgu işleç

Dönüş Türü

Hemen bir yürütme

Ertelenmiş akış yürütme

Yürütme akış olmayan ertelenmiş

Aggregate``1

TSource

X

 

 

All``1

Boolean

X

 

 

Any``1

Boolean

X

 

 

AsEnumerable``1

IEnumerable

 

X

 

Average

Tek bir sayısal değer

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

Tek bir sayısal değer, TSource veya TResult

X

 

 

Min

Tek bir sayısal değer, TSource veya 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

Tek bir sayısal değer

X

 

 

Take``1

IEnumerable

 

X

 

TakeWhile``1

IEnumerable

 

X

 

ThenBy``2

IOrderedEnumerable

 

 

X

ThenByDescending``2

IOrderedEnumerable

 

 

X

ToArray``1

TSource dizisi

X

 

 

ToDictionary``2

Dictionary

X

 

 

ToList``1

IList

X

 

 

ToLookup``2

ILookup

X

 

 

Union``1

IEnumerable

 

X

 

Where``1

IEnumerable

 

X

 

Ayrıca bkz.

Başvuru

Enumerable

Kavramlar

Standart Sorgu İşleçlerine Genel Bakış

Standart Sorgu İşleçleri için Sorgu İfade Sözdizimi

Nesnelere LINQ