În lecția anterioară, am vorbit despre faptul că LINQ întârzie de fapt executarea interogărilor sale constituente până în ultimul moment, când avem nevoie de datele respective în mod concret. Ceea ce nu era la fel de evident la momentul respectiv era ordinea în care sunt executate interogările LINQ.… Read more
Archive for 2021
Fluxul de execuție LINQ
miercuri, iunie 23rd, 2021Executarea amânată
miercuri, iunie 9th, 2021Clauze Select degenerate
luni, iunie 7th, 2021Luând un extras din lecțiile anterioare despre LINQ, aveam aceste coduri:
Dacă ați acordat atenție codului de mai sus, probabil că ați observat funcția Select(n => n). Dacă o analizați puțin, vă dați seama că este o expresie lambda care nu face decât să preia un parametru numit n și să-l returneze, fără nici o modificare.… Read more
Scrierea de metode de extensie LINQ personalizate
luni, iunie 7th, 2021În lecția anterioară, în care v-am prezentat o previzualizare a modului în care arată LINQ, am terminat cu acest cod:
Și am aflat că sintaxa în formă liberă a LINQ este același lucru și cu sintaxa declarativă a LINQ, care este și ea aceealași lucru cu o grămadă de metode de extensie pentru interfața IEnumerable, declarate în interiorul unei clase numite Enumerable.… Read more
LINQ
luni, mai 24th, 2021În sfârșit, acum știm suficient pentru a începe să vorbim despre LINQ, care este un acronim pentru Language Integrated Query, care este în esență doar un mod util de a face interogări și chestii de tip SQL în C#. Dacă nu știți ce este SQL, probabil că ar trebui să vă documentați puțin mai întâi despre el, dar, la nivel macro, SQL (Structured Query Language) este doar un limbaj pentru interacțiunea cu bazele de date.… Read more
Instrucțiunea yield break
marți, mai 11th, 2021Ori de câte ori folosim cuvântul cheie yield într-o declarație, indicăm că metoda, operatorul sau accesorul get în care apare este un iterator. Desigur, din moment ce știm că iteratorii sunt folosiți să… duh! itereze pe colecții de date și, din moment ce știm că atunci când iterăm pe o colecție, putem folosi cuvântul cheie break pentru a termina imediat iterația, este evident că de fiecare dată când folosim o instrucțiune yield return pentru a returna valori dintr-un iterator, cum am arătat în lecția anterioară, putem folosi de asemenea și yield break pentru a termina iterația iteratorului menționat.… Read more
Instrucțiunea yield return
luni, februarie 22nd, 2021În lecția anterioară, am vorbit despre IEnumerable și IEnumerator și despre modul în care acestea ne ajută atunci când trebuie să iterăm pe colecții de date. Să luăm un exemplu care tratează aceste concepte:
Avem o funcție, GenereazaNumereAleatorii(), în interiorul căreia declarăm o listă de int-uri, generăm un număr de int-uri aleatorii, egal cu parametrul _numarElemente, adăugăm int-urile aleatorii în listă, apoi returnăm lista.… Read more