Linq ifadeleri çalışma anı önemlidir.Linq ifadeleri çağrıldığı anda çalışırlar
using System; namespace Linq_Ertelenmisveanındayurutme String[] isimler = new string[4] { "İbrahim", "Ali", "Veli", "Mahmutt" }; x=7; } } |
Dikkat edecek olursak sonuçlar 7 harflidir. Çünkü x = 5 ken linq sorgusu çalışmamıştır.
foreach içinde çağrılduğı anda linq sorgusu çalışmıştır. ve bu çağrılmadan hemen önce x=7 olmuştur. Buna ertelenmiş çalıştırma deniyor.Bu yöntemin amacı Linq ifadelerinin bir kere yazılması ve farklı zamanlarda çağrıldığında güncel sonuçları döndürmesidir.
peki ya bu işlemin tersini yapmak istersek. Hemen çalışmasını istersek ne yapmamız gerekir.
Sorgunun o anda çalışması ve sonucun korunması için .net framework bize ToArray<T>(),
ToDictionary<TSource,TKey>(), ToList<T>() gibi genişletme yordamları sunmaktadır.
hemen bir örnek ile anında çalıştırmayı görelim
int x = 3; //var sorgu = from kisi in isimler var sorgu = (from kisi in isimler x=7; |
şeklinde değiştirelim. Ekranda Ali yazacaktır.Görüldüğü gibi burda işlem hemen yapılmış ve 3 harfli isim yazdırılmış sonra x değişkeninin değeri 7 yapılmıştır.