You are on page 1of 1

• Da bismo mogli da koristimo LINQ izraze moramo da dodamo using System.

Linq;
int[] niz = new int[] { 1, 2, 3, 4, 3, 2, 1 };
• Select() – upit koji vrši mapiranje elemenata niza (vraća uvek onoliko elemenata koliko je elemenata u nizu)
var rez = niz.Select(x => 2 * x); //2,4,6,8,6,4,2
var rez = niz.Select(x =>'a'); // a a a a a a a a
var rez = niz.Select(x => x %2==0); //false,true,false,true,false,true,false
• Where() - mora uvek da primi neki uslov kao parametar (neku bool vrednost) inače ne može da se
kompajlira. Ovo je upit koji nam vraća određene članove niza koji zadovoljavaju zadati uslov.
var rez = niz.Where(x => x %2==0); // 2 4 2
var rez = niz.Where(x => x*x); // NE MOŽE!
var rez = niz.Where(x => x>3); // 4
• Distinct() – vraća kolekciju u kojoj ostaje samo jedno pojavljivanje svakog broja (uzima prvo pojavljivanje).
Ne sme da ima nikakve parametre.

var rez = niz.Distinct(); // 1 2 3 4


• Max(), Min() – vraća najveći/najmanji element niza. Mogu da primaju parametre. Moguće je porediti i bool
• Average() – vraća prosek elemenata niza. Može da prima parametre, ali i ne mora. Vraća double vrednost
var rez = niz.Average(x => 2 * x); //vraca prosek niza 2,4,6,8,6,4,2
var rez = niz.Average(); //vraća prosek niza 1, 2, 3, 4, 3, 2, 1
• Contains() - proverava da li neki određeni element pripada ili ne pripada nizu. Vraća true ili false.
var rez = niz.Contains(50); //false
var rez = niz.Contains(2); //true
• Count() – vraća broj elemenata niza. Može da se poziva sa parametrom ili bez.
• Any() – proverava da li je barem jedan od elemenata niza zadovoljava određeni uslov. Vraća bool vrednost.
var rez = niz.Any(x => x % 2 != 0);
// proverava da li u nizu postoji barem jedan neparan broj
• All() – proverava da li svi elementi kolekcije zadovoljavaju određeni uslov.
• Except() – Uzima sve elemente niza bez ponavljanja osim onih koje mu prosledimo
var rez = niz.Except(niz.Where(x => x <= 2));//3,4
//vraća sve elemente niza bez ponavljanja osim elemenata koji su <=2
• Sum() – vraća zbir svih elemenaza niza. Može da prima neki parametar kao Min i Max.

• First() – vraća prvi element kolekcije.


Može da se poziva bez parametara (tada vraća baš prvi element
) ili sanekim uslovom kao parametar – u tom slučaju vraća prvi element
koji zadovoljava traženi uslov. Ne može da se poziva nad praznom
listom ili nizom (InvalidOperationException)
var rez = niz.First(); //vraca prvi
var rez = niz.First(x => x % 2 == 0); //vraca prvi paran
Ukoliko bismo uradili sledeću liniju koda opet bi se javio InvalidOperationException:
var rez = niz.First(x => x >50);
Da se to ne bi dešavalo koristi se FirstOrDefault() koji radi identično kao i First(), samo što ne baca
InvalidOperationException već vraća default vrednost ukoliko upit ne može da se izvrši
• Last() / LastOrDefault() – isto kao i First, samo traži poslednji element
• FindAll() – radi isto kao i Where, samo što je FindAll više za listu, a Where je za niz. Obe metode mogu da se
koriste i za niz i za listu, razlika je samo u njihovoj implementaciji u pozadini.
• Skip() Take() – preskače/uzima određen broj elemenata iz niza
var rez = niz.Take(3); // uzima prva 3 //1, 2, 3
var rez = niz.Skip(3); // preskače prva 3, uzima ostatak //4,3,2,1

You might also like