Junior — Middle
Puteți explica conceptul de inițializare întârziată a rezultatelor în LINQ și cum funcționează?
sobes.tech AI
Răspuns de la AI
În LINQ (Language Integrated Query) în C# se utilizează conceptul de inițializare întârziată (lazy) sau executare întârziată a interogărilor. Aceasta înseamnă că însăși interogarea asupra colecției nu se execută în momentul declarării, ci doar atunci când se accesează rezultatul, de exemplu, în timpul parcurgerii într-un ciclu sau apelând metode care necesită materializare (de exemplu, ToList(), ToArray()).
Executarea întârziată permite:
- Optimizarea performanței, deoarece interogările nu sunt executate inutil.
- Construirea de lanțuri complexe de interogări care vor fi executate într-o singură trecere.
Exemplu:
var numbers = new List<int> {1, 2, 3, 4, 5};
var query = numbers.Where(n => n > 3); // Interogarea este declarată, dar nu executată
foreach(var num in query) // Aici are loc executarea interogării
{
Console.WriteLine(num); // Va afișa 4 și 5
}
Dacă modificăm colecția numbers după declararea interogării, dar înainte de executare, rezultatul se va schimba, deoarece interogarea se execută exact în momentul parcurgerii.