Lambda ifadelerinden bazı methodlar ve kullanımları

Merhaba arkadaşlar. Bu makale lambda ifadelerinden  bazı methodları ve kullanımlarını anlatacağım.
Öncelikle basit bir class ve o class'tan oluşacak bir liste yapıyorum.
public class liste 
{
    public string ad { get; set; }
    public int sira  { get; set; }
    public bool aktif { get; set;}
}
   List<liste> a = new List<liste>();
   a.Add(new liste { ad="A", sira=5, aktif=true });
   a.Add(new liste { ad = "B", sira = 4,aktif=false });
   a.Add(new liste { ad = "C", sira = 1, aktif=true });
   a.Add(new liste { ad = "D", sira = 3, aktif=false});
   a.Add(new liste { ad = "E", sira = 2, aktif=false });
OrderBy: Herhangi bir değişkene göre küçükten büyüğe sıralamaya yarar
Örn:
var siraliste = a.OrderBy(o=>o.sira).ToList();
for (int i = 0; i < siraliListe.Count(); i++)
        {
           Response.Write("Değişken: "+siraliListe[i].ad+" Sıra: "+siraliListe[i].sira);
        }
Çıktısı:
Değişken: C Sıra: 1
Değişken: E Sıra: 2
Değişken: D Sıra: 3
Değişken: B Sıra: 4
Değişken: A Sıra: 5
OrderByDescending : OrderBy methodunun tam tersi. Büyükten küçüğe sıralamaya yarar.
Çıktısı:
Değişken: A Sıra: 5
Değişken: B Sıra: 4
Değişken: D Sıra: 3
Değişken: E Sıra: 2
Değişken: C Sıra: 1
ThenBy:  Önceden sıralanmış bir listeyi tekrar sıralamaya yarar.
var siraliste = a.OrderBy(o=>o.aktif).ThenBy(t=>f.sira).ToList();
for (int i = 0; i < siraliListe.Count(); i++)
        {
           Response.Write("Değişken: "+siraliListe[i].ad+" Sıra: "+siraliListe[i].sira+"Durum:"+siraliListe[i].aktif);
        }
Çıktısı:
Değişken: E Sıra: 2  Durum:  false
Değişken: D Sıra: 3  Durum:  false
Değişken: B Sıra: 4  Durum:  false
Değişken: C Sıra: 1  Durum:  true
Değişken: A Sıra: 5  Durum:  true
Önce aktiflik durumuna göre küçükten büyüğe sıraladı. Sonra kendi içlerinde sıra değişkenine göre sıraladı.
ThenByDescending: ThenBy Methodunun tam tersi şeklinde çalışır.
Değişken: A Sıra: 5  Durum:  true
Değişken: C Sıra: 1  Durum:  true
Değişken: B Sıra: 4  Durum:  false
Değişken: D Sıra: 3  Durum:  false
Değişken: E Sıra: 2  Durum:  false
Take: Var olan listeden içine aldığı değer kadarını tutulmasını sağlar
var yeni_liste = a.Take(2).ToList();
for (int i = 0; i < yeni_liste.Count(); i++)
        {
           Response.Write("Değişken: "+yeni_liste[i].ad+" Sıra: "+yeni_liste[i].sira+"Durum:"+yeni_liste[i].aktif);
        }
Çıktı
Değişken: A Sıra: 5 Durum: true
Değişken: B Sıra: 4 Durum: false
Skip: İçine aldığı integer değerden sonrasını alır. Tabiri caizse X tanesini Skip Atıyosunuz :D
var yeni_liste = a.Skip(2).ToList();
for (int i = 0; i < yeni_liste.Count(); i++)
        {
           Response.Write("Değişken: "+yeni_liste[i].ad+" Sıra: "+yeni_liste[i].sira+"Durum:"+yeni_liste[i].aktif);
        }
Çıktı
Değişken: C Sıra: 1  Durum:  true
Değişken: D Sıra: 3  Durum:  false 
Değişken: E Sıra: 2  Durum:  false
Where: Liste içinde belirlenen koşula uygun olanları almaya yarar.
Örn. Sırası 3'den büyük ve Durumu false olanları almak istersek.
var yeni_liste = a.Where(w=>w.sira>3&&w.aktif==false).ToList();
for (int i = 0; i < yeni_liste.Count(); i++)
        {
           Response.Write("Değişken: "+yeni_liste[i].ad+" Sıra: "+yeni_liste[i].sira+"Durum:"+yeni_liste[i].aktif);
        }
Çıktı
Değişken: B Sıra: 4  Durum:  false
İyi Kodlar!

Yorumlar