C# LINQ To SQL Eğitimleri 17 – LINQ Metotları: AsReadOnly
Herkese merhabalar;
16 Yazı boyunca LINQ To SQL kullanarak bir program yapmıştık. Bundan sonraki yazılarımda LINQ ortamında derinlere inerek metotları tanıtmak istiyorum. Tanıtacağım metotların ilki AsReadOnly saltokunur olarak anlamına gelmektedir. Faydalı olması dileğiyle.
AsReadOnly
Array, List ve OrderedDictionary sınıfları tarafından desteklenir. Diğer türlerin bu metotu kullanabilmesi için bunlara dönüşüm yapmalıdır. Kısacası AsReadOnly dizi, liste gibi işlevleri yapar. Aşağıdaki örnekte de göreceğiniz bir listeyi kendisine atayacağız. Sonrasında ise bu listede istediklerimizi kullanacağız. Uygulamamızın açıklaması şu şekildedir.
Bir sınıfta 80 ve üzeri not alan öğrenciler başarılı sayılmaktadır. Buna göre Başarılı öğrencileri yazdırınız.
Tabi ki de öğrencileri ve notlarını biz gireceğiz. Öncelikle Ogrenci adında bir class oluşturalım. Öğrencilerin adı ve notu olsun bu sınıfta. Bu sınıfa listeleme yöntemiyle öğrenciler ekleyelim. Sonrasında var tipinde bir siralama değişkeni koyalım. Bu değişkenin sorgusunda ise AsReadOnly ‘i kullanacağız. Ancak bunu kullanabilmemiz için de list metodunu kullanmalıyız.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
namespace AsReadOnly { class Program { class Ogrenci { // industryolog.com public string Adi { get; set; } public double Not { get; set; } } // industryolog.com static void Main(string[] args) { // industryolog.com // Tanımladığımız sınıfa Eleman Ekleyelim // Ogrenci Olarak Sınıf tanımladık bu sınıfa eleman eklemek için de // List yöntemini kullanıyoruz var sınıf = new List<Ogrenci> { new Ogrenci { Adi="Ali",Not=95}, new Ogrenci { Adi="Industryolog",Not=60}, new Ogrenci {Adi="Kamil",Not=94}, new Ogrenci {Adi="Murat",Not=84}, new Ogrenci {Adi="Sinan",Not=88}, }; // Not ortalaması 80 den büyük öğrencileri alalım // AsreadyOnly 'ninde bir özelliği sonucları liste olarak tutmasıdır. var siralama = (from Ogrenci in sınıf where Ogrenci.Not > 80 select Ogrenci).ToList().AsReadOnly(); // siralama listesine taşıdık ve şimdi sıralamayı gösterelim Console.WriteLine("************** Industryolog Akademi **************"); Console.WriteLine(""); Console.WriteLine(" C# LINQ To SQL EGITIMLERI-AsReadOnly "); Console.WriteLine(""); Console.WriteLine(""); Console.WriteLine(" Sınıftaki Başarılı Öğrenciler "); Console.WriteLine(""); for(int i = 0; i < siralama.Count; i++) { Console.WriteLine((i+1)+" .Öğrenci= " + siralama[i].Adi); } Console.ReadKey(); } } } |
Her türlü görüş ve önerileriniz için ademirkaya@industryolog.com adresine mail atabilirsiniz.
Bir sonraki yazıda görüşmek dileğiyle, esen kalın.