LINQ – .NET Language Integrated Query III Dio


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:

linq01

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.

About Bahrudin Hrnjica

PhD in Mechanical Engineering, Microsoft MVP for .NET. Likes .NET, Math, Mechanical Engineering, Evolutionary Algorithms, Blogging.

Posted on 07/09/2007, in .NET, C# and tagged , , . Bookmark the permalink. Leave a comment.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s