17 Ocak 2014 Cuma

LINQ group 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ıtları doğum yerine göre gruplayarak liste değişkenine aktarmak için group ifadesini kullanıyoruz.
            var liste = from x in KayitListesi  group by  x.dyeri;
            // ve datagridview içerisinde aşağıdaki şekilde görüntülenmesini sağlıyoruz.
            dataGridView1.DataSource = liste.ToList();

dediğimizde datagridview içerisinde sadece
Bursa
İzmir
Van
ifadesi görünür.

eğer gruplanan veriyi sıralamak istersek aşağıdaki şekilde yapabiliriz.

            var liste = from x in KayitListesi  orderby x.dyeri descending group by  x.dyeri;

hem gruplama, hem sıralama hemde filitre konulabilmektedir.

           var liste = from x in KayitListesi  orderby x.dyeri descending where x.cinsiyeti == "Erkek" group by  x.dyeri;

Hiç yorum yok:

Yorum Gönder