Makale Geçmişi
20.06.16 21:17
LINQ - Query Reuse - Sorgunun Yeniden Kullanımı
LINQ sorguları hemen çalıştırılmaz. Sorgu tanımlandıktan sonra çalıştırılabilmesi için bir foreach döngüsü içinde veya bir LINQ yöntemi (fonksiyonu) ile kullanılması gerekir. Buna Deffred Execution (ertelenmiş çalıştırma) denir. Ertelenmiş çalıştırma bize sorguyu bir kez tanımladıktan sonra veriler değiştikçe tekrar tekrar çalıştırma imkanı verir. int[] sayilar = new int[] { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 }; var kucukSayilar = from sayi in sayilar where sayi < 5 select sayi; Console.WriteLine("İlk çalıştırma sonucunda 5'den küçük sayılar :"); foreach (int sayi in kucukSayilar) { Console.WriteLine(sayi); } // Dizideki sayıları değiştir (negatife çevir) for (int i = 0; i < 10; i++) { sayilar[i] = sayilar[i] * -1; } // Sayılar değiştiği için alttaki foreach döngüsünde sorgu tekrar // çalıştırılacak ve dolayısıyla farklı sonuçlar görüntülenecektir. Console.WriteLine("İkinci çalıştırma sonucunda 5'den küçük sayılar:"); foreach (int sayi in kucukSayilar) { Console.WriteLine(sayi); } Örneğin çıktısı şöyle olacaktır : İlk çalıştırma sonucunda 5'den küçük sayılar : 4 1 3 2 0 İkinci çalıştırma sonucunda 5'den küçük sayılar: -5 -4 -1 -3 -9 -8 -6 -7 -2 Diğer LINQ Makaleleri: LINQ Örnekleri makalelerinde kullanılan verikaynağı LINQ (Language Integrated Query - Dile Entegre Edilmiş Sorgu) Nedir? LINQ Sağlayıcıları (LINQ Providers) LINQ Yöntem Sözdizimi (LINQ Method Syntax) LINQ - Temel İşlemler - Bir Veri Kaynağı Bildirme ve Seçme (From ve Select) LINQ - Temel İşlemler - Süzme (Filtering) LINQ - Temel İşlemler - Sıralama (Ordering) LINQ - Temel İşlemler - Gruplama (Grouping) LINQ - Temel İşlemler - Birleştirme (Joining) LINQ - Deferred Execution - Ertelenmiş Çalıştırma LINQ - Immediate Execution - Anında Çalıştırma LINQ - Query Reuse - Sorgunun Yeniden Kullanımı (Bu makale) LINQ - Kısıtlama (Restriction) Kullanım Örnekleri LINQ - Yansıtma (Projection) - Select Kullanım Örnekleri LINQ - Yansıtma (Projection) - SelectMany Kullanım Örnekleri LINQ - Bölümleme (Partitioning) Örnekleri LINQ - Sıralama (Ordering) Örnekleri LINQ - Gruplama (Grouping) Örnekleri LINQ - Küme (Set) Örnekleri LINQ - Dönüşüm (Conversion) Örnekleri LINQ - Eleman (Element) Seçimi Örnekleri LINQ - Oluşturma (Generation) Örnekleri LINQ - Miktar Belirleyiciler (Quantifiers) Örnekleri LINQ - Yığın (Aggregate) Örnekleri LINQ - Birleştirme (Join) İşlemleri LINQ - Özel Dizilim (Custom Sequence) Örneği LINQ - Concat ve SequenceEqual İle Örnekle r
Ekleyen: canora
Değiştiren: canora
09.04.16 20:55
LINQ - Query Reuse - Sorgunun Yeniden Kullanımı
LINQ sorguları hemen çalıştırılmaz. Sorgu tanımlandıktan sonra çalıştırılabilmesi için bir foreach döngüsü içinde veya bir LINQ yöntemi (fonksiyonu) ile kullanılması gerekir. Buna Deffred Execution (ertelenmiş çalıştırma) denir. Ertelenmiş çalıştırma bize sorguyu bir kez tanımladıktan sonra veriler değiştikçe tekrar tekrar çalıştırma imkanı verir. int[] sayilar = new int[] { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 }; var kucukSayilar = from sayi in sayilar where sayi < 5 select sayi; Console.WriteLine("İlk çalıştırma sonucunda 5'den küçük sayılar :"); foreach (int sayi in kucukSayilar) { Console.WriteLine(sayi); } // Dizideki sayıları değiştir (negatife çevir) for (int i = 0; i < 10; i++) { sayilar[i] = sayilar[i] * -1; } // Sayılar değiştiği için alttaki foreach döngüsünde sorgu tekrar // çalıştırılacak ve dolayısıyla farklı sonuçlar görüntülenecektir. Console.WriteLine("İkinci çalıştırma sonucunda 5'den küçük sayılar:"); foreach (int sayi in kucukSayilar) { Console.WriteLine(sayi); } Örneğin çıktısı şöyle olacaktır : İlk çalıştırma sonucunda 5'den küçük sayılar : 4 1 3 2 0 İkinci çalıştırma sonucunda 5'den küçük sayılar: -5 -4 -1 -3 -9 -8 -6 -7 -2
Ekleyen: canora
En fazla 3 eski durum gösterilir.