Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Standart sorgu işleci yöntemlerinin LINQ to Objects uygulamaları iki ana yoldan biriyle yürütülür: anında veya ertelenmiş. Ertelenmiş yürütme kullanan sorgu işleçleri ayrıca iki kategoriye ayrılabilir: akış ve akış dışı. Farklı sorgu işleçlerinin nasıl yürütüldüğünü biliyorsanız, belirli bir sorgudan elde ettiğiniz sonuçları anlamanıza yardımcı olabilir. Bu durum özellikle veri kaynağı değişiyorsa veya başka bir sorgunun üzerine sorgu oluşturuyorsanız geçerlidir. Bu konu başlığında standart sorgu işleçleri yürütme şekline göre sınıflandırır.
Yürütme Şekli
Hemen
Anında yürütme, veri kaynağının okunduğu ve işlemin sorgunun bildirildiği kod noktasında gerçekleştirildiği anlamına gelir. Tek, numaralandırılamayan bir sonuç döndüren tüm standart sorgu işleçleri hemen yürütülür.
Ertelenmiş
Ertelenmiş yürütme, işlemin sorgunun bildirildiği kod noktasında gerçekleştirilmediği anlamına gelir. İşlem yalnızca sorgu değişkeni numaralandırıldığında, örneğin bir For Each deyimi kullanılarak gerçekleştirilir. Bu, sorguyu yürütmenin sonuçlarının, sorgu tanımlandığında değil, sorgu yürütülürken veri kaynağının içeriğine bağlı olduğu anlamına gelir. Sorgu değişkeni birden çok kez numaralandırılırsa, sonuçlar her seferinde farklı olabilir. Dönüş türü IEnumerable<T> veya IOrderedEnumerable<TElement> olan neredeyse tüm standart sorgu operatörleri, ertelenmiş bir şekilde yürütülür.
Ertelenmiş yürütme kullanan sorgu işleçleri ayrıca akış veya akış dışı olarak sınıflandırılabilir.
Yayın
Akış işleçlerinin öğeleri vermeden önce tüm kaynak verileri okuması gerekmez. Yürütme sırasında, bir akış operatörü her kaynak eleman üzerinde okundukça işlemini gerçekleştirir ve uygunsa öğeyi üretir. Akış işleci, sonuç öğesi üretilene kadar kaynak öğeleri okumaya devam eder. Bu, bir sonuç öğesi üretmek için birden fazla kaynak öğenin okunabileceği anlamına gelir.
Akış Dışı
Akış dışı işleçlerin bir sonuç öğesi elde etmeden önce tüm kaynak verileri okuması gerekir. Sıralama veya gruplandırma gibi işlemler bu kategoriye girer. Yürütme sırasında akış dışı sorgu işleçleri tüm kaynak verileri okur, bir veri yapısına ekler, işlemi gerçekleştirir ve sonuçta elde edilen öğeleri verir.
Sınıflandırma Tablosu
Aşağıdaki tablo, her standart sorgu işleci yöntemini yürütme yöntemine göre sınıflandırır.
Uyarı
bir işleç iki sütunda işaretlenmişse, işleme iki giriş dizisi dahil edilir ve her dizi farklı değerlendirilir. Bu gibi durumlarda, her zaman parametre listesindeki ertelenmiş, akış biçiminde değerlendirilen ilk sıradır.