C# programlama dilinde generic koleksiyonları anlamadan önce koleksiyonun ne olduğunun üzerinden tekrar geçelim. Koleksiyon, bizim nesnelerimizi saklayabildiğimiz sınıflara verilen genel isimdir. Koleksiyonlarda, dizilerde olduğu gibi tek bir türden veriyi saklama sınırlandırmamız yoktur. Koleksiyonlarda istediğimiz kadar türden veriyi saklayabilmemiz mümkündür.
Koleksiyonlar, aynı zamanda boyut olarak da dizilerde olduğu gibi sınırlı bir boyuta sahip değildir, biz içerisine daha fazla eleman eklediğimiz sürece boyutları da büyür.
Koleksiyonlarda eleman sayısı length değil count özelliği ile görüntülenir.
Dinamik olarak veri akışı olan durumlarda dizi yerine koleksiyon sınıflarını tercih etmemizin iki temel artısı vardır. Bunlardan birincisi, saklamamız gereken elemanların sayısı zaman içerisinde değişebileceği için dizilerde olduğu gibi başta tanımladığımız boyutlandırmalar ile kendimizi sınırlandırmamız anlamsız olacaktır. İkincisi ise zaman içerisinde farklı veri tiplerinde elemanları da saklamamız gerekebileceği için dizilerde yine farklı türlerde elemanlar saklamamız mümkün olmayacaktır.
Koleksiyonlarda yapmamız gereken işlemleri de düşünecek olursak temel olarak:
- Ekleme
- Yer değiştirme
- Silme
- Kopyalama
- Arama yapma
Örneğin bir okulun veritabanını yönettiğimizi düşünelim. Okula her katılan ve okuldan mezun olan öğrenci için sürekli olarak bir veri giriş çıkışı olacaktır ve eleman sayılarımızın da sürekli değişmesi gerekecektir. Bu durumda dizi yerine koleksiyon sınıflarını kullanmamız zaten daha mantıklıdır. Ayrıca veritabanımızda zaman içerisinde öğrenciler ile birlikte öğretmenler, idari görevliler vb. gibi farklı türden verileri de saklayabilmemiz gerekebileceği için yine koleksiyon sınıflarını kullanmamız dizilere göre bize büyük esneklik kazandıracaktır.
C# Koleksiyon Sınıfları Nelerdir?
C# programlama dilinde farklı durumlarda tercih edebileceğimiz çeşitli koleksiyon sınıfları mevcuttur. Zaman içerisinde daha detaylı örnekler de yapabileceğimiz bu sınıflar:
ArrayList: bkz: C# ArrayList Kullanımı ve Örnekleri
Stack: Son girenin ilk çıktığı koleksiyon sınıfıdır.
SortedList: Bir anahtar (key) ve bir de index ile elemanlara erişim sağlanır
HashTable:Bir anahtar (key) ile koleksiyondaki elemanlara erişilir
Queue: İlk girenin ilk çıkan olduğu koleksiyon sınıfıdır
BitArray: Kaç bitten oluştuğu bilinmeyen verileri saklamak için kullanılır.
Önceki bazı diğer benzer içerikli yazılarım için;
bkz: C# Override Nedir ve Nasıl Kullanılır?
bkz: Interface Nedir?
bkz: C# Virtual Metod Nedir ve Nasıl Kullanılır?
bkz: Programlama Dillerinde Kalıtım Nedir?
bkz: C# ile iki tarih arasında rastgele tarih üretmek
bkz: C# ile List'ten rastgele eleman seçmek