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.

Advertisements

About Bahrudin Hrnjica

PhD in Mechanical Engineering, Microsoft MVP for Visual Studio and Development Technologies. Likes .NET, Math,Data Science, Evolutionary Algorithms, Machine Learning, 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