40 lines
2.0 KiB
Plaintext
40 lines
2.0 KiB
Plaintext
A linq to objects az IEnumerable<T> és IEnumerable interfészeket megvalósító (foreach ciklussal bejárható) kollekció esetén működnek.
|
|
A megvalósítás a Syste.Linq névtérben kapott helyet, amit alapvetően nem kell használatba vennünk, mert ha egy új osztályt készítünk sablon alapján visual studioban akkor alapértelmezetten használatba lesz véve.
|
|
|
|
A linq szintaxisai:
|
|
Lambda:
|
|
elemek.Where(i => i.X > 10).Select(i => i.x);
|
|
querry:
|
|
var eredmeny = from elem in elemek
|
|
where elem.x > 10
|
|
select elem.x;
|
|
|
|
|
|
A sql utasítások közül a group by is használható.
|
|
|
|
Mint látható a rendezést az orderby kulcsszó valósítja meg,
|
|
amit a tulajdonság neve követ, ami alapján rendezni akarunk.
|
|
Ezután vagy az ascending, vagy a descending kulcsszónak kell következnie attól függően, hogy növekvő, vagy csökkenő sorrendben szeretnénk az adatokat kiírni. A lambda szintaxis esetén az OrderBy és az OrderByDescendinget alkalmazzuk.
|
|
|
|
Csoportosítás (good bye)
|
|
|
|
A csoportosítás query szintaxis esetén a group kulcsszóval kezdődik, amiután meg kell adnunk, hogy pontosan mit szeretnénk csoportba rendezni.
|
|
A példa esetén a kiválasztott elem szerint csoportosítsunk, de állhatna itt egy anonim osztályba leképzés is.
|
|
Ezt követi a by kulcsszó, ami után meg kell adnunk, hogy mi szerint csoportosítunk, majd az into kulcsszó után meg kell adnunk a csoport nevét, amiből ki tudunk majd választani.
|
|
|
|
A lambda kifejezés szintaxisa látható módon jelen esetben sokkal egyszerűbb, mivel csak azt kell megadnunk, hogy mi szerint rendezünk csoportba, az eredmény pedig már a csoportok sorozata lesz.
|
|
|
|
Egy csoport elemekből áll.
|
|
|
|
JOIN
|
|
|
|
Ezt a műveletet join nak vagy összekapcsolásnak nevezzük. A join műveleteknek több fajtája van. Objeltumok esetén a legkönnyebb at inner mjoin művelet valósítható meg. Et két típus metszetét jelenti.
|
|
|
|
SOROZAT ÉS ELEM MŰVELETEK
|
|
csak lambda szintaxissal alkalmazhatóak
|
|
|
|
kihagyás Skip()
|
|
Take() //csak adott számú elem kiválasztása
|
|
|
|
var eredmeny = elemek.Skip(2).Take(3);
|