LINQ Ögreniyorum 1
Bu yazi dizisinde LINQ yapisinin ve yaziminin ögrenilmesi amaçlanmistir.
Açilimi Language Integrated Query olan LINQ ile çesitli objelere, Ado.Net nesnelerine(datatable, dataset) ve xml dökümanlarina güçlü sorgular yazilabilmektedir. Bu sorgular hem yaziminin kolayligi hem de performansi açisindan gayet kullanislidir. Ayni zamanda bundan önce veri kaynaklarinin her biri için ayri ayri sorgulama dilleri bilmemiz gerekiyordu. LINQ ile bunlara ihtiyacimiz artik yok tabii ki…
Bu yazimda LINQ yazimindan, LINQ içerisinde kullanilan kisitlama operatörlerinden(restriction operators)bahsetmek istiyorum. Bunun için birkaç örnek yapalim. Bu yazimdaki ilk örnegi anladiktan sonra gerisi hiç te zor gelmeyecek…
Bir adet Windows uygulamasi açalim ve ise koyulalim.
1.Adim: Formunuza bir Adet Button birakiniz ve asagidaki kodu butonumuzun “Click” eventine yaziniz.
LINQ YAZIMI
int[] sayilar = { 10,1,0,15,2,3,5,7,6,8,4};
var kucukler = from sayi in sayilar
where sayi < 5 //5 ten küçük olanlar
select sayi;
foreach (object eleman in kucukler)
{
MessageBox.Show(eleman.ToString());
}
|
· Burada int[] tipindeki dizimiz veri kaynagimiz. Bu sizin ihtiyaciniza göre bir DataTable, DataSet ya daXML dökümani da olabilirdi…
var kucukler ile Anonim(Anonymous) bir veri tipi belirtiliyor. Kisacasi degiskenin türü aldigi verinin türüne göre degisiyor.
from sayi in sayilar ile veri kaynagimizda(sayilar) kosula uyan tüm veriler tutulacak…
·
where sayi < 5 ile sart belirledik…
select sayi ile sarta uyanlari seçtik…
foreach döngüsü ile LINQ sorgusu sonucunda ortaya çikan degerler okundu…
Kisitlama Operatörleri(Restriction Operators)
Bu operatörler tipki C# dilinde kullandiginiz operatörlere benzerler. Yazimi da aynidir. Birkaç Kullanimi göstererek temel LINQ yazimina iyice adapte olalim.
< ya da > operatörü
int[] sayilar = { 10,1,0,15,2,3,5,7,6,8,4};
!= operatörü
private void button3_Click(object sender, EventArgs e)
{
var farkliOlanlar = from sayi in sayilar
where sayi != 5 //5 ten farkli olanlar
select sayi;
foreach (object eleman in farkliOlanlar)
{
MessageBox.Show(eleman.ToString());
}
}
|
&& operatörü
private void button4_Click(object sender, EventArgs e)
{
var farkliOlanlar = from sayi in sayilar
where sayi>5 && sayi<7 //5 ten büyük 7 den küçük olanlar
select sayi;
foreach (object eleman in farkliOlanlar)
{
MessageBox.Show(eleman.ToString());
}
}
|
== operatörü
private void button5_Click(object sender, EventArgs e)
{
var farkliOlanlar = from sayi in sayilar
where sayi ==5 //5 e esit olanlar
select sayi;
foreach (object eleman in farkliOlanlar)
{
MessageBox.Show(eleman.ToString());
}
}
|
Yazi dizisi devam edecektir. Diger yazilarimda görüsmek üzere…
Engin Demirog
engin@e-learner.net
Comments 0