LINQ nedir diyerek başlıyalım:
LINQ .NetFramework ile gelen bir yeniliktir. Hanginiz veri tabanı programı yaptınız desem burda ben şu kadar yıllık programcıyım hiç de veritabanı programı yapmadım diyen cıkmaz sanırım. SQL veri tabanı işlemlerinde harikalar oluşturan bir dildir.(Her ne kadar bazen şaşırsada :)). Peki böyle birseyi program içindeki bi dizi de, bir listede, bir XML yapısında kullanmak güzel olmazmıydı. İşte burda LINQ devreye giriyor. kısaca LINQ i özetliyecek olursak
Program içinde sorgulama yapmamıza yarayan yapı diyebiliriz.
şimdi basit bir örnek le devam edelim.
private void button1_Click(object sender, EventArgs e)
{
int[] sayilar = { 1, 2, 3, 5, 8, 13, 21, 34 };
var sorgu = from s in sayilar where s > 5 select s;
foreach (int sayi in sorgu)
{
MessageBox.Show(sayi.ToString());
}
}
burda dönecek değer 8,13,21,34 dür.
sorgumuzu inceleyecek olur SQL e cok benzemekte sadece Select s basta değil sonra :D bir fromdan sonra foreach deki sorgu gibi bir sorgu var.
SQL içerisinde kullandığımız komutları (orderby -ascending,-descending,min,max,sum,count) aynı LINQ de de kullanabiliriz.
private void button2_Click(object sender, EventArgs e)
{
int[] sayilar = { 1, 2, 3, 5, 8, 13, 21, 34 };
var sorgu = from s in sayilar where s > 5 orderby s descending select s;
foreach (int sayi in sorgu)
{
MessageBox.Show(sayi.ToString());
}
}
bu rada büyükten küçüğe göre sıralama olur.
private void button3_Click(object sender, EventArgs e)
{
string[] diller = { "C#", "C++", "C", "Python", "VB", "VB.NET", "C#", "VB.NET" };
var sorgu = from dil in diller.Distinct() orderby dil ascending select dil;
foreach (string dill in sorgu)
{
MessageBox.Show(dill.ToString());
}
}
Bu kod ile distinct ile aynı olan veriler çıkartılır ve ascending ile küçükten büyüğe doğtu sırlama yapılır.
Görüldüğü gibi kullanım noktasında sql den pek farkı yok.