17 Ocak 2014 Cuma

LINQ where kullanımı

Amacımız butona basıldığında List koleksiyonumuzda bulunan kayıtlarımızı LINQ yardımı kullanarak datagridview üzerinde görüntülemek.

1. Formumuz üzerine bir tane datagridview bir tane button ekleyelim. 
2. F7 tuşuna basarak kod yazım ekranına geçelim.
3. Aşağıdaki şekilde bir class yazalım.
        public class Kayit
        {
            public string isim { get; set; }
            public string dyeri { get; set; }
            public string cinsiyeti { get; set; }
            public int yasi { get; set; }
        }
4. Form üzerindeki butonumuzu tıklayıp içine
           //öncelikle Kayit tipinde bir Generic List tanımlayıp içerisini aşağıdaki şekilde dolduruyoruz.
            List<Kayit>  KayitListesi = new List<Kayit>
            { 
                new Kayit {isim = "Ali", dyeri = "Bursa", cinsiyeti = "Erkek", yasi = 20},
                new Kayit {isim = "Ayşe", dyeri = "İzmir", cinsiyeti = "Bayan", yasi = 10},
                new Kayit {isim = "Veli", dyeri = "Bursa", cinsiyeti = "Erkek", yasi = 30},
                new Kayit {isim = "Cem", dyeri = "Bursa", cinsiyeti = "Erkek", yasi = 15},
                new Kayit {isim = "Can", dyeri = "Bursa", cinsiyeti = "Erkek", yasi = 18},
                new Kayit {isim = "Mine", dyeri = "İzmir", cinsiyeti = "Bayan", yasi = 18},
                new Kayit {isim = "Oya", dyeri = "Bursa", cinsiyeti = "Bayan", yasi = 11},
                new Kayit {isim = "Metin", dyeri = "Bursa", cinsiyeti = "Erkek", yasi = 23},
                new Kayit {isim = "Ayça", dyeri = "Bursa", cinsiyeti = "Bayan", yasi = 25},
                new Kayit {isim = "Ayşe", dyeri = "Van", cinsiyeti = "Bayan", yasi = 34}
            };
            // KayıtListesi koleksiyonundaki kayıtlardan doğum yeri Bursa olan kayıtları liste değişkenine aktarmak için where ifadesini kullanıyoruz.
            var liste = from x in KayitListesi  where x.dyeri = "Bursa" select x;
            // ve datagridview içerisinde aşağıdaki şekilde görüntülenmesini sağlıyoruz.
            dataGridView1.DataSource = liste.ToList();

Eğer birden fazla şart kullanılacak ise araya gerekli bağlaçları ekleyerek birden fazla koşul belirtebiliriz.
Mesela 20 yaşından büyük Erkeklerin listesini alabilmek için;
    var liste = from x in KayitListesi where x.cinsiyeti == "Erkek" && x.yasi > 20 select x;

Koşula ek olarak orderby ifadesi ile sıralama yapmakta mümkündür.
    var liste = from x in KayitListesi where x.cinsiyeti == "Erkek" && x.yasi > 20 orderby yasi select x;


Hiç yorum yok:

Yorum Gönder