C# Koleksiyonlar (System.Collection)
Koleksiyonlar System.Collection namespace'i altında bulunan veri saklama sınıflarımızdır.
Koleksiyonlar :
- ArrayList
- SortedList
- HashTable
- BitArray
- Stack
- Queue
- Array :
- ArrayList :
- SortedList :
SortedList sortedList = new SortedList();Şeklinde bir deneme yaparsak sonucumuz şöyle olacaktır:
sortedList.Add("5", "unel");
sortedList.Add("4", "blog");
sortedList.Add("1", true);
sortedList.Add("3", "safak");
sortedList.Add("2", "2");
sortedList.Add("6", 123);
sortedList.Add("a", ".net dersleri");
sortedList.Add("c", "öğren");
sortedList.Add("z", "koleksiyonlar");
int sayac = 0;
foreach (object obc in sortedList.Values)
{
sayac++
Console.WriteLine(sayac + ". sıradaki veri = " + obc.ToString());
}
- HashTable :
Hashtable hashTable= new Hashtable();Bu durumdaki ekran çıktımız :
hashTable.Add("5", "unel");
hashTable.Add("4", "blog");
hashTable.Add("1", true);
hashTable.Add("3", "safak");
hashTable.Add("2", "2");
hashTable.Add("6", 123);
hashTable.Add("a", ".net dersleri");
hashTable.Add("c", "öğren");
hashTable.Add("z", "koleksiyonlar");
int sayac = 0;
foreach (object obc in hashTable.Values)
{
sayac++;
Console.WriteLine(sayac + ". sıradaki veri = " + obc.ToString());
}
Görüldüğü gibi ayni veriler bir SortedList birde HashTable ile sıralandı ve iki farklı sonuç elde edildi. Bu iki sıralamanın farklı sonuçlar vermesinin nedeni SortedList önce numerik key değerlerini küçükten büyüğe sıralar sonrasında kalanları alfabetik sıraya göre sıralar. HashTable ise key değerinin hash kodunu elde edip sıraladığı için belirli bir sırası yoktur.
- BitArray :
- Stack:
Stack LIFO (Last In First Out) mantığıyla çalışır yani Stack'a son giren ilk çıkar, Görüldüğü gibi veriler üzerinde dolaşmaya imkan sağlamazlar. Stack yapısını bir depoya benzetebiliriz. Bir depo düşünün bu depoya mallar en son eklenen malın arkasına gelecek şekilde eklenir ve bir mal çıkarılacaksa ilk giren mala ulaşılamaz en son konulan mal çıkarılır. Yani son giren ilk çıkar. Bu yapıda içindeki verilerde dolaşma imkanı yoktur. Sadece en sondaki veriye ulaşılabilir. Boyut belirtme zorunluluğu yoktur, veri geldikçe kendi otomatik olarak arttırır.
- Queue:
Queue ise FIFO(First In Fırst Out) mantığıyla çalışır Queue'de ise ilk giren ilk çıkar kuyruk yapısıda diyebiliriz. Bunuda bir banka kuyruğuna benzetebiliriz. Bankaya gittiğimizde sıraya gireriz ve bankaya ilk gelen ilk çıkar. Bunun dışında Stack yapısıyla ayni özelliklere sahiptir. Yine veriler üzerinde gezme yoktur, boyut belirtme zorunluluğu yoktur, veri geldikçe kendi otomatik olarak arttırır.
çok faydalı oldu....
YanıtlaSil