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)