U nekoliko prethodnih postova pisao sam o novinama i proširenjima 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.
-
Također ovaj tekst predstavlja nastavak serije tekstova o LINQ
LINQ Standardni operatori upita
Uvod
U prethodnom izlaganju vidjeli smo upotrebu nekoliko operatora upita. U ovom poglavlju pozabavićemo se više oko ovih operatora te vidjeti na koji ih način koristiti efikasno u programima. Razvijajući aplikacije, programer konstantno rješava određene probleme manipulacije sa podacima. U tu srhu koriste se određene preinstalirane biblioteke kao i biblioteke od trećih lica. Nažalost nismo uvijek u prilici da sa bibliotekama koje koristimo imamo riješene sve probleme.
LINQ Operatori upita mnoge naše probleme kojim smo svakodnevno okruženi tokom razvoja aplikacija, mogu zaista efektivno riješiti u samo nekoliko linija koda. Kao što smo kazali LINQ ne predstavlja manipulaciju samo sa eksternim izvorima podataka, također ove osobine jezika koristimo i sa memorijskim izvorom. U narednom tekstu upoznat ćemo se sa operatorima upita te kroz primjere primjene, te pokazati njihovu jednostavnost, efikasnost i lakoću.
Operatori sortiranja (orderby, reverse, descending)
Već smo u I dijelu vidjeli upotrebu sortiranja podataka. Prednosti korištenja ovog operatora nad kolekcijama koje nemaju implementiranu ovu mogućnost su vrlo korisne.
Uzmimo iz prethodnog primjera polje stringova i primjenimo operator sortiranja. Npr sortirajmo uzlaznim i slizanim redom gradove u BiH:
Međutim sortiranje možemo izvršiti po nekom drugom kriteriju npr. po broju slova u nazivu:
Kriterije možemo lančano slagati tačka notacijom. U tom slučaju koristimo ThenBy operator poslije OrderBy operatora. Kombinirajmo prethodna dva primjera i napišimo sljedeći primjer:
Reverse operator koristimo kada želimo sortirani niz obrnuti. Sljedeći primjer prikazuje upotrebu operatora Reverse i OrderbyDescending, da bi prikazali suštinsku razliku između ova dva operatora.
Rezultat prethodnih upita prikazan je na sljedećoj slici:
Reverse operator za razliku od OrderBy operatora oslanja se samo na poredak podataka koji je dobijenih iz izvora podataka.
U narednom poglavlju pozabavit ćemo se sa operatorima grupiranja i agregacijskim operatorima.
Cjelokupan text u 5 dijelova koji je napisan o LINQ mozete skinuti odavde.
Pingback: LINQ – .NET Language Integrated Query III Dio « Bahrudin Hrnjica Blog