Junior — Middle
LINQ'te sonuçların ertelenmiş başlatma kavramını açıklayabilir misiniz ve nasıl çalışır?
sobes.tech yapay zeka
AI'dan gelen yanıt
C# dilinde LINQ (Language Integrated Query) kullanılırken, tembel (gecikmeli) başlatma veya sorguların gecikmeli yürütülmesi kavramı kullanılır. Bu, koleksiyona yapılan sorgunun, tanımlama anında değil, sonuçlara erişildiğinde, örneğin döngüde gezinirken veya materyalleştirme gerektiren metodlar çağrıldığında (örneğin, ToList(), ToArray()) yürütüldüğü anlamına gelir.
Gecikmeli yürütme şunlara olanak tanır:
- Performansı optimize etmek, çünkü sorgular gereksiz yere yürütülmez.
- Tek geçişte yürütülecek karmaşık sorgu zincirleri oluşturmak.
Örnek:
var numbers = new List<int> {1, 2, 3, 4, 5};
var query = numbers.Where(n => n > 3); // Sorgu tanımlandı, ancak yürütülmedi
foreach(var num in query) // Burada sorgu yürütülür
{
Console.WriteLine(num); // 4 ve 5 yazdırır
}
Eğer sorgu tanımından sonra, yürütmeden önce, numbers koleksiyonunu değiştirirsek, sonuç değişir, çünkü sorgu tam olarak yineleme sırasında yürütülür.