Tuesday, March 19, 2024 02:17

Posts Tagged ‘linq’

Fluxul de execuție LINQ

miercuri, iunie 23rd, 2021

Î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

Executarea amânată

miercuri, iunie 9th, 2021

Mulți programatori par să creadă că executarea amânată (în engleză, deferred execution) există din cauza LINQ, iar acest lucru este doar parțial adevărat. LINQ are multe de-a face cu aceasta, dar execuția amânată există în primul rând din cauza declarației yield.… Read more

Clauze Select degenerate

luni, iunie 7th, 2021

Luâ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

IEnumerable și IEnumerator

vineri, mai 8th, 2020

Înainte de a putea începe să ne ocupăm de LINQ, trebuie mai întâi să înțelegem principiile care stau la baza sa. LINQ se referă la operațiuni asupra colecțiilor de date, deci, ați ghicit: ne vom ocupa de colecții.

Ați aflat deja că dintre toate structurile de date, array-urile sunt cele mai rapide, deoarece sunt structuri de date non-generice nesortate.… Read more

Semnificația lui „this” în metodele de extensie

luni, mai 4th, 2020

În lecția despre metodele de extensie, am aflat că acestea sunt un mod frumos de a adăuga funcționalitate suplimentară tipurilor deja existente, și am făcut acest lucru prin adăugarea unei metode statice într-o clasă statică, care a luat un parametru de tip, prefixat de cuvântul cheie this, astfel:


Deci, deși clasa mea originală Carte nu conține o metodă numită VindeExemplar(), pot să o apelez în metoda Main() deoarece am declarat o metodă de extensie pentru clasa Carte, iar această metodă statică VindeExemplar() a luat un parametru de tip Carte prefixat de cuvântul cheie this, care semnalează compilatorului că metoda este intenționată ca o metodă de extensie pentru tipul Carte.… Read more

Metode extensie

luni, mai 4th, 2020

Uneori, programatorii consideră că au nevoie să adauge funcționalități noi codurilor deja existente, pentru a le îmbunătăți sau a le completa. În cazul în care respectivul codul sursă este disponibil, sarcina este simplă – trebuie doar să adauge funcționalitatea necesară și să recompileze.… Read more


Follow the white rabbit