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.
Ö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>();
OrderBy: Herhangi bir değişkene göre küçükten büyüğe sıralamaya yarar
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 });
Örn:
var siraliste = a.OrderBy(o=>o.sira).ToList();
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.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
Çı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.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
var siraliste = a.OrderBy(o=>o.aktif).ThenBy(t=>f.sira).ToList();
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.
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ı.
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ğlarDeğ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
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
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: 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
Yorum Gönder