C# Generic List Koleksiyon
Bu yazımda C#’ta Generic List koleksiyonuna değineceğim.Biliyoruz ki ArrayList koleksiyon yapısı mevcuttur ve çoğu işimizi bu koleksiyon yapısıyla görebiliyoruz.Ancak içine aldığı elemanları object tipte alır.Bu yüzden koleksiyon içine alınan elemanlara boxing işlemi yapılır.
ArrayList deneme = new ArrayList();
deneme.Add("Gençay");
deneme.Add("Yıldız");
deneme.Add(21);
deneme.Add(DateTime.Now);
Yukarda gördüğünüz gibi, ArrayList koleksiyon yapısına elemanları atarken object tipte alıyor ve boxing işlemi yapılıyor.Eğer ben bu koleksiyondaki verilerimle çalışmak istiyorsam sürekli unboxing yapmak zorunda kalacağım.Ve gördüğünüz gibi yapının içinde sadece bir tek tip yok.String,int ve DateTime tipinden veriler object olarak koleksiyon da tutulabiliyor.Bu verilerle çalışırken verinin tipini bilmemiz gerekiyor ve ona göre unboxing yapmamız gerekiyor.
Uzun lafın kısası, ArrayList kullanımının sakıncalarından biride tip güvenliğinin olmaması.
Bu sorunlar programın akışında karmaşaya yol açabilirler ve performansı negatif etkilerler.
Eğer koleksiyon içinde bütün veriler aynı tipte olacaksa ArrayList yerine Generic List koleksiyon yapısı kullanılır.(Genellikle class nesneleri için)
List<int> Sayilar=new List<int>(); //List<int> : Bu koleksiyon yapısına int tipinden başka değer eklenemez. Sayilar.Add(12); Sayilar.Add(10); Sayilar.Add(17); Sayilar.Add(21);
Yukarıda gördüğünüz yapı Generic List koleksiyon yapısıdır.Eğer bu koleksiyona int tipinden olmayan bir veri eklersek program derlenmeyecektir.Object çalışmadığımız için boxing,unboxing olmaz.Performansı pozitif etkileyecektir.Sadece istediğimiz tipte veri alabildiği için tip güvenliği korunmuş olacaktır.
Şimdilik bu kadar..İyi çalışmalar.
