Sobes.tech
Junior — Middle

LINQ-də nəticələrin təxirə salınmış başlanğıc konseptini izah edə bilərsiniz və necə işləyir?

sobes.tech Süni İntellekt

AI-dan cavab

C# dilində LINQ (Language Integrated Query) istifadə edilərkən, tənbəl (lazımi) başlanğıc və ya sorğuların gecikdirilmiş icrası konsepti tətbiq olunur. Bu, kolleksiyaya edilən sorğunun, elan edildiyi zaman deyil, nəticəyə müraciət edildiyi zaman, məsələn, dövr vasitəsilə keçərkən və ya materializasiyanı tələb edən metodlar çağırıldıqda (məsələn, ToList(), ToArray()), icra olunması deməkdir.

Gecikdirilmiş icra aşağıdakı imkanları verir:

  • Performansı optimallaşdırmaq, çünki sorğular ehtiyac olmadan icra edilmir.
  • Bir keçid ilə icra olunacaq mürəkkəb sorğu zəncirlərinin qurulması.

Nümunə:

var numbers = new List<int> {1, 2, 3, 4, 5};
var query = numbers.Where(n => n > 3); // Sorğu elan olunub, amma icra olunmayıb

foreach(var num in query) // Burada sorğu icra olunur
{
    Console.WriteLine(num); // 4 və 5 çap edir
}

Əgər sorğu elan etdikdən sonra, amma icra etmədən əvvəl, numbers kolleksiyasını dəyişsək, nəticə dəyişər, çünki sorğu dəqiqən keçid zamanı icra olunur.