Linq İle All Metodu Kullanımı


30 Temmuz 2014 Hikmet Okumuş Linq & Lambda

Linq ile yazmış olduğum bir önceki makalede Any metodunu anlatmıştım. Any metodunda belirtilen koşul koleksiyon içerisinde herhangi bir kaydı sağlarsa geriye true, hiçbir kayıt koşulu sağlamazsa false değerini döndürdüğünü görmüştük.
All metodunu Any metodundan ayıran fark ise, belirtilen koşulu koleksiyonda bulunan tüm elemanların sağlaması gerekmektedir. Yani All metodu ile koşul belirttiğimiz zaman, belirtilen koşul koleksiyon içerisinde bulunan tüm kayıtlar tarafından mutlaka sağlanması gerekmektedir.

Eğer tüm kayıtlar koşulu sağlıyor ise geriye True, bir kayıt dahi koşulu bozuyorsa geriye False değerini döndürmektedir. Aşağıdaki obje üzerinden örnekleyelim.
    public class Kisi
    {
        public Kisi() { }
        public Kisi(string Ad, int Yas, bool Durum)
        {
            this.Ad = Ad;
            this.Yas = Yas;
            this.Durum = Durum;
        }

        public string Ad { get; set; }
        public int Yas { get; set; }
        public bool Durum { get; set; }
    }
Aşağıdaki gibi liste içerisine elemanları ekliyoruz.
        static void Main(string[] args)
        {
            List< Kisi> Kisiler = new List< Kisi>();
            Kisiler.Add(new Kisi("Ali", 15, true));
            Kisiler.Add(new Kisi("Can", 22, true));
            Kisiler.Add(new Kisi("Hakan", 19, false));
            Kisiler.Add(new Kisi("Yılmaz", 41, true));
            Kisiler.Add(new Kisi("Ahmet", 25, true));
            Kisiler.Add(new Kisi("Veli", 17, true));

            Console.Read();
        }
Koleksiyon içerisinde Durum değeri False olan bir adet kayıt bulunmaktadır. Bu bilgiye göre aşağıdaki gibi bir sorgu yazalım.
        static void Main(string[] args)
        {
            List Kisiler = new List< Kisi>();
            Kisiler.Add(new Kisi("Ali", 15, true));
            Kisiler.Add(new Kisi("Can", 22, true));
            Kisiler.Add(new Kisi("Hakan", 19, false));
            Kisiler.Add(new Kisi("Yılmaz", 41, true));
            Kisiler.Add(new Kisi("Ahmet", 25, true));
            Kisiler.Add(new Kisi("Veli", 17, true));

            var sonuc = Kisiler.All(x => x.Durum == true);
            Console.WriteLine(sonuc.ToString());
            Console.Read();
        }
Ekran görüntüsü aşağıdaki gibidir.

www.hikmetokumus.com

All metodunun tanımı yaparken tüm kayıtların verilen şartı sağlaması gerektiğini belirtmiştik. Listede false değerine sahip kayıt olduğu için, koleksiyonun tüm elemanları koşulu sağlamaz ve All metodu bize false değerini döndürmektedir. Birde aşağıdaki gibi bir örnek yapalım.
var sonuc = Kisiler.All(x => x.Yas < 50);

www.hikmetokumus.com

Bu örnekte ise koleksiyonda Yas değeri 50' den küçük olan kayıtlar kontrol ediliyor. Koleksiyonda bulunan tüm elemanlar şartı sağladığı için metod geriye True değerini döndürmektedir.

Başarılar dilerim.



Yorum Ekle