01.04.2020

C# ile Nesnelerde LINQ Kullanımı Örnekleri

Temel C# bilgileri ile ilgili eksiklerimizi tamamlayıp LINQ'e de giriş yaptıktan sonra nesnelerden oluşan koleksiyonlar içinde LINQ'i nasıl kullanabileceğimizi inceleyebiliriz.

Kişi sınıfının ve Cinsiyet enum'unun diyagramını görsel olması açısından paylaşıyorum.

class diagram

Şimdi de class kodlarını yazalım:

class Kisi
{
    private string ad;
    private int boy;
    private int kilo;
    private Cinsiyet cinsiyet;

    public string Ad
    {
        get { return this.ad; }
        set { this.ad = value; }
    }

    public int Boy
    {
        get { return this.boy; }
        set { this.boy = value; }
    }

    public int Kilo
    {
        get { return this.kilo; }
        set { this.kilo = value; }
    }

    public Cinsiyet Cinsiyet { get; set; }

    public Kisi(string ad, int boy, int kilo, Cinsiyet cinsiyet)
    {
        this.Ad = ad;
        this.Boy = boy;
        this.Kilo = kilo;
        this.Cinsiyet = cinsiyet;
    }
}

enum Cinsiyet
{
    Erkek,
    Kadın
}

Kişi sınıfından üretilen bir çok nesne olabilir. Bu kişilerin oluşturduğu koleksiyona kisiler adını vererek 6 kişi nesnesi ekliyorum:

List<Kisi> kisiler = new List<Kisi>()
{
    new Kisi("Özge", 170, 60, Cinsiyet.Kadın ),
    new Kisi("Ziya", 160, 60, Cinsiyet.Erkek ),
    new Kisi("Meral", 175, 80, Cinsiyet.Kadın ),
    new Kisi("Burhan", 190, 120, Cinsiyet.Erkek ),
    new Kisi("Batuhan", 155, 70, Cinsiyet.Erkek ),
    new Kisi("Cengiz", 185, 90, Cinsiyet.Erkek )
};

Örnek 1: İsmi 4 harfli olan kişileri bulmak amacıyla bir LINQ sorgusu yazın ve çıktı alın. Çıktıda da kişilerin isim, boy ve cinsiyet bilgileri yer alsın.

var dortHarfliIsimliKisiler = from k in kisiler
                              where k.Ad.Length.Equals(4)
                              orderby k.Boy descending
                              select k;
foreach (var kisi in dortHarfliIsimliKisiler)
{
    Console.Out.WriteLine("Ad: "+kisi.Ad+" Boyu: "+kisi.Boy+" Cinsiyeti:"+kisi.Cinsiyet);
}

//Ad: Özge Boyu: 170 Cinsiyeti: Kadin
//Ad: Ziya Boyu: 160 Cinsiyeti: Erkek

 

Örnek 2: ismi 4 harfli olan kişileri boy uzunluklarına göre azalan sırada listeleyin.

var dortHarfliIsimliKisiler = from k in kisiler
                              where k.Ad.Length.Equals(4)
                              orderby k.Boy descending
                              select k;
foreach (var kisi in dortHarfliIsimliKisiler)
{
    Console.Out.WriteLine("Ad: "+kisi.Ad+" Boyu: "+kisi.Boy+" Cinsiyeti:"+kisi.Cinsiyet);
}

//Ad: Özge Boyu: 170 Cinsiyeti: Kadin
//Ad: Ziya Boyu: 160 Cinsiyeti: Erkek

 

Örnek 3: İsimlerinin karakter sayısı 10'dan az olan kişileri önce kilolarına göre azalan sırada listeleyin. Kiloları aynı olan kişileri de isimlerine göre artan sırada listeleyin.

var kisilerSirali = from k in kisiler
                    where k.Ad.Length < 10
                    orderby k.Kilo descending, k.Ad
                    select k;
foreach (var kisi in kisilerSirali)
{
    Console.Out.WriteLine("Ad: " + kisi.Ad + " Boyu: " + kisi.Kilo + " Cinsiyeti:" + kisi.Cinsiyet);
}

/*
Ad: Burhan Boyu: 120 Cinsiyeti:Erkek
Ad: Cengiz Boyu: 90 Cinsiyeti:Erkek
Ad: Meral Boyu: 80 Cinsiyeti:Kadin
Ad: Batuhan Boyu: 70 Cinsiyeti:Erkek
Ad: Özge Boyu: 60 Cinsiyeti:Kadin
Ad: Ziya Boyu: 60 Cinsiyeti:Erkek
*/

 

C# ile Nesnelerde LINQ Kullanımı Örnekleri
Bu makalenin telif hakkı ve tüm sorumlulukları yazara ait olup, şikayetler için lütfen bizimle iletişime geçiniz.
URL:
Etiketler:

Bu makale 1720 kez okundu

01.04.2020 tarihinde yazıldı
Reitix

Yorumlar

  • Bu makaleye henüz hiç yorum yazılmamış. İlk yorumu yazan siz olabilirsiniz.

Bu yazıya siz de yorum yapabilirsiniz

İnternet sitemizdeki deneyiminizi iyileştirmek için çerezler kullanıyoruz. Bu siteye giriş yaparak çerez kullanımını kabul etmiş sayılıyorsunuz. Daha fazla bilgi.