Derinlemesine yazılım eğitimleri için kanalımı takip edebilirsiniz...

LINQ – Anonymous Type Kullanarak Sonuç Geri Dönme

LINQ sorgulamalarında sonuç kümelerini ya var tipinden değişkene alabiliyorduk ya tipinden emin olduğumuz koleksiyona veya diziye çevirerek alabiliyorduk ya da kendi belirlediğimiz bir tip geri döndürüyorduk.LINQ sorgusu sonucunda elimize geçen sonuç kümesindeki nesnelerin ya da değerlerin, bazı özelliklerini ya da tüm değerlerini, isimsiz bir nesne üzerinden geri dönmeye Anonymous Type deniyor.
Anonymous Type kullanarak sonuç dönerken kazandığımız esneklikler mevcut.Bu konuyu dahada somutlaştırmak için bir örnek verebilirim.LINQ sorgulamamız sonucu, içinde “Adı” , “Soyadı” ve “DogumTarihi” özellikleri olan nesneler dönecektir.Ancak ben dönen bu nesnelerin “Adı” ve “Soyadı” propertylerindeki değerleri, “İsim” ve “Soyisim” adındaki propertylerde saklamak, “DogumTarihi” propertysinide almamak istiyorum.İşte bu durumda Anonymous Type kullanarak “İsim” ve “Soyisim” adındaki özellikler oluşturup, “Adı” ve “Soyadı” özelliklerindeki değerleri bunlara atıp, tipi ne olduğunu bilmediğimiz bir sonuç kümesi elde edebiliriz.

Şimdi Anonymous Type kullanımını gösterebilmek için bir örnek yapalım.C dizinindeki bütün dosyaların bilgilerini çekelim.Ve bu bilgilerden sadece, dosya adı, dosya boyutu ve olusturulma tarihlerini alalım.

            DirectoryInfo DosyaBilgileri = new DirectoryInfo("C:/");
            FileInfo[] Dosyalar = DosyaBilgileri.GetFiles();
            var Sonuc = from Dosya in Dosyalar
                        where Dosya.Length > 1000
                        select new
                        {
                            DosyaAdi = Dosya.Name,
                            DosyaBoyutu = Dosya.Length,
                            OlusturulmaTarihi = Dosya.CreationTime
                        };
            foreach (var item in Sonuc)
            {
                listBox1.Items.Add(item.DosyaAdi + " " + item.DosyaBoyutu + " " + item.OlusturulmaTarihi);
            }

Yukarıda gördüğünüz gibi, “select” deyiminden sonra “new” anahtar sözcüğünü kullanarak ({}) süslü parantezler arasında elimizdeki dosyaların istediğim bilgilerini, istediğim isimdeki propertylere atıyorum.Sonuçta var tipinden Sonuç adındaki değişkene, içinde DosyaAdi,DosyaBoyutu ve OlusturulmaTarihi adında üç tane propertysi olan nesneler dönmektedir.Tabi bu nesnelerin tiplerinin ve adlarının ne olduğunu bilemeyiz.

Anonymous Type hakkındaki yazım bundan ibaret.Faydasını görmeniz dileğiyle.
İyi çalışmalar..

Bunlar da hoşunuza gidebilir...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*