U nekoliko prethodnih postova pisao sam o novinama i proširenjim nove verzije C# 3.0. Proširenja koja su spomenuta omogućuju implementaciju LINQ (Language Integrated Query) kao nove tehnologije pristupa i manipulacije informacija u aplikaciji.
Takodjer ovaj tekst predstavlja nastavk serije tekstova o LINQ
GroupBy operator
Skup standardni operatora upita čini i operator grupiranja GroupBy, koji uspostavlja podjelu nad sekvencijalnim vrijednostima temeljenim na funkcijama ekstrakcije. Ovaj operator vraća skup IGrouping podataka za svaki različiti vrijednosni kriterij. Svakako da je Igrouping izvedeni interfejs od Ienumerabl koji dodatno sadrži kriterij koji je korišten za ekstrakciju podataka iz izvora.
Jednostavan primjer upotrebe GroupBy operatora možemo predstaviti na sljedećoj slici:
Poslije pokretanja ovog programa rezultat je prikazan na sljedećoj slici:
Agregacijski operatori
Agregacijski operatori koji su podržani u LINQ definišemo na sličan način. Napišimo primjer upotrebe agregacijskog operatora Agregate. Ovaj operator vrši određenu kalkulaciju na sekvencom podataka. Operator vrši operacije koristeći lambda izraze nad svakoj sekvenci podataka. Sljedeći primjer izračunava broj karaktera korištenih u cijelom nizu:
Rezultat pokretanja programa:
Agregate operator propisuje u Count operator i 4 numerička agregacijska operatora(Min, Max, Sum, i Average) minimum, maksimum, suma i srednja vrijednost respektivno. Ovi numerički operatori procesuiraju nad sekvencama podataka bilo kojeg numeričkog tipa podataka int, double, decimal i sl.
Sljedeći primjer prokazuje upotrebu nekoliko pomenutih operatora:
Rezultat pokretanja programa prikazan je na sljedečoj slici:
Cjelokupan text u 5 dijelova koji je napisan o LINQ mozete skinuti odavde.