23 lines
2.5 KiB
Plaintext
23 lines
2.5 KiB
Plaintext
|
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 egy kulcsból (Key) és az elemekből áll. A kulcs a csoportosítási változó típusát veszi fel, az elemek pedig a kiválasztási elemek lesznek. A példából látható, hogy a csoportok bejárásához két foreach ciklus szükséges.
|
||
|
|
||
|
A join műveleteknek több fajtája van. Objektumok esetén legkönnyebben az inner join művelet valósítható meg. Ez két típus metszetét jelenti.
|
||
|
|
||
|
A példában látható módon az összekapcsolás első lépése a szokásos változó hivatkozás az első kollekcióból, majd jön a join kulcsszó, ami után szintén egy változót hivatkozunk be a második kollekcióból. Ezután meg kell adni az összekapcsolási feltételt. Ezt az on után kell megtenni. Jelen esetben itt az a feltételünk, hogy az Y változóknak meg kell egyeznie. Az összekapcsoláshoz minden esetben valamiféle egyenlőségre kell visszavezetnünk a feltételt. A feltétel közepén az Equals kulcsszónak kell állnia.
|
||
|
|
||
|
Lambda szintaxis esetén a Join metódus első paramétere a kapcsolni kívánt kollekció. Ezt követi két összekapcsolási kulcs kiválasztás. Az első kiválasztás az első kollekcióra érvényes, amin hívtuk a Join metódust, a második pedig a kapcsolni kívánt kollekcióra érvényes. Az utolsó paraméter pedig az eredmény leképezést valósítja meg.
|
||
|
|
||
|
|
||
|
LINQ Sorozat és elem műveletek
|
||
|
|
||
|
A most következő műveletek csak lambda esetében használható:
|
||
|
|
||
|
Kihagyás és megadott számú elem kiválasztása:
|
||
|
|
||
|
Ha elemeket szeretnénk kihagyni egy kollekcióból, akkor a Skip(), metódust alkalmazhatjuk. Ennek paramétereként a kihagyandó elemek számát kell megadnunk. Ha pedig csak egy adott mennyiségű elemet szeretnénk kiválasztani, akkor a Take() metódust alkalmazhatjuk. Ennek paramétere szintén egész szám, ami a kiválasztandó elemek számát adja meg. Mindkét metódus esetén, ha kifutna az eredeti kollekció méretéből, akkor egy üres kollekciót kapunk.
|
||
|
|
||
|
First(): Az első elemet adja vissza. Ha nincs, akkor hibát dob.
|
||
|
FirstOfDefault(): Az első elemet adja vissza. Ha nincs, akkor egy alapértelmezett értéket ad vissza.
|
||
|
|
||
|
ElementAt(): A kollekció egy adott elemét adja vissza. Bemenetként az elem sorszámát várja, és hibát dob, ha nem létezik a megadott sorszámmal elem.
|
||
|
var eredmeny = elemek.FirstOrDefault(i => i.Y == 99)
|
||
|
var eredmeny2 = elemek.Last(i => i.Y == 1)
|