C# Non-Generic Koleksiyon Yapıları – System.Collections
Bu yazımda C#’ta koleksiyon yapılarından bahsedeceğim..NET Framework içinde koleksiyon yapıları System.Collections namespace i altında bulunan veri saklama sınıflarıdır.İki tür koleksiyon yapısı vardır.Non-Generic ve Generic koleksiyonlar.Ben bu yazımda Non-Generic koleksiyonlardan bahsedeceğim.Bu koleksiyon sınıfları;ArrayList,SortedList ve HashTable dır.Bu koleksiyonlar klasik diziler gibidirler.Ancak dizilerde(Array) kullanamadığımız bir çok özelliği bu koleksiyon yapılarında kullanabiliyoruz.
Neden diziler değilde koleksiyon yapılarını tercih etmemiz gerekiyor?
Bir dizi oluştururken eleman sayısını belirtmemiz gerekiyor.Eleman sayısını aşarsak eğer, bize hata veriyor.Bu da bizi hem sınırlıyor, hem de verdiğimiz o boyutta bellekte yer kaplıyor.Ancak bir koleksiyon yapısında, biz o koleksiyona eleman verdikçe boyutu dinamik şekilde ayarlanır.
Şunuda belirtmek istiyorum.Her ne kadar dizilerde bizi sınırlıyor ve bellekte yer kaplıyor desekte,sonucta tek bir tipten dizi oluşturabildiğimiz için Casting işlemi hiç yapılmıyor.Ancak Non-Generic koleksiyonlarda object tipten eleman aldığı için Boxing-Unboxing işlemleri uygulamak zorunda kalıyoruz.Buda Non-Generic koleksiyonlara karşı bir artısı var demektir.
Aslında bu yazımda sadece Non-Generic koleksiyonlardan bahsedeceğim ama Generic koleksiyonlar hakkında da bilgi vermeden yapamayacağım.Günümüzde genellikle Non-Generic koleksiyonlar yerine Generic koleksiyonlar tercih edilir.Çünkü yukarıda bahsettiğimiz gibi Non-Generic koleksiyonlarda object tiple çalışırlar ve sürekli Boxing ve Unboxing işlemleri yapılır.Yani tip güvenli değildir.Fakat Generic’ler içlerinde olacak tiplerin ne olduğunu belirtebileceğimiz için tip güvenlidirler(Generic koleksiyonlara ilerideki yazılarımda değineceğim.).Buda şunu gösteriyor ki,dizi yerine Generic koleksiyon kullanmak,bizlere daha esnek yapı sunacaktır.
Bir sonraki sayfada System.Collections isim alanıyla ilgili açıklama yapacağım.

harikulade bir site gencay 🙂
Teşekkür ederim Mustafam 🙂