LINQ – .NET Language Integrated Query IV Dio


Sintaksa upita u LINQ

U prethodnim postovima vidjeli smo načine kako možemo formirati upit nad izvorom podataka. Takodjer se može primjetiti da svaki upit možemo formirati na dva, u suštini ista, a sintaktički različita načina. Naime svaki LINQ upit formiran Lambda izrazom možemo formirati tačka notacijom (Dot Notaton). Ovakav fleksibilam pristup definisanju upita u LINQ rezultat su proširenja koja se pojavljuju u novoj verziji C#, a koje smo spominjali u prethodnim postovima. Npr. definišimo LINQ upit tačka notacijom. Imamo:

var izraz= nazivi
.Where(s=>s.Lenght==6)
.OrderBy(s=>s)
.Select(s=>s.ToUpper());

Prethodni upit možemo formirati Lambda izrazom na sljedeći način:

var izraz= from s in imena
where s.Lenght ==6
orderby s
select s.ToUpper();

Na kraju ovog dijela pobrojat ćemo sve operatore koji se mogu pojaviti u LINQ upitima:

OPERATOR Opis
Where Restriktivni operator.
Select / SelectMany Operator projekcije.
Take/SkipTakeWhile/SkipWhile Parcijalni operator baziran na poziciji ili uslovnoj funkciji.
Join/GroupJoin Operator spajanja u odnosu na zadani uslov.
Concat Operator spajanja.
OrderBy/ThenBy/OrderByDescendingThenByDescending Sortiranje u uzlaznom, silaznom smijeru u odnosu na zadani uslov.
Reverse Operator sortiranja sekvence u suprotnom smijeru
GroupBy Operator grupiranja u odnosu na zadani uslov.
Distinct Operator uklanjanja duplikata elemenata u skupu.
Union/Intersect Operator koji vraća uniju ili podskup zadanih skupova elemenata.
Except Operator koji vraća komplement zadanog skupa.
ToSequence Operator konverzije u IEnumerable<T>
ToArray/ToList Operator konverzije u List<T>
ToDictionary/ToLookup Operator konverzije u Dictionary<K,T> ili LookUp<K,T> u odnosu na zadani ključ.
OfType/Cast Operator konverzije u IEnumerable<T> u odnosu na filtrirane elemente ili konverzije u tip argumenta.
EqualAll Operator jednakosti koji vraća jedanake uparene elemente.
First/FirstOrDefault/Last/LastOrDefault/Single/SingleOrDefault Operator vraćanja početne/zadnje/jednog elementa u odnosu na zadanu funkciju.
ElementAt/ElementAtOrDefault Operator vraćanja elementa određene pozicije.
DefaultIfEmpty Operator zamjene prazne vrijednosti sa podrazumijevanom.
Range Generatorski operator vraćanja broja u opsegu.
Repeat Generatorski operator vraćanja višestrukih pojavljivanja elementa zadane vrijednosti.
Empty Generatorski operator vraćanja prazne sekvence.
Any/All Kvantifikator provjere egzistencije ili univerzalnosti funkcije izraza.
Contains Kvantifikator provjere postojanja datog elementa.
Count/LongCount Agregacijski operatori brojanja elemenata.
Sum/Max/Min/Average Agregacijski oparatori kao opcione funkcije selektora.
Aggregate Agregacijski oparator, vidi dio III

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 05/10/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