09 December 2016

C# Kolleksiyonlar

Daha önceki notlarımda ArrayList‘e ve metodlarına yer vermiştim. Burada diğer kolleksiyon tiplerine göz atacağız.

Hashtable Koleksiyonu

Hashtable dizi elemanlarına anahtar bir değerle ulaşılmak istendiğinde kullanılan bir koleksiyondur. Veriler key/value denilen anahtar/değer çiftleri şeklinde tutulur.

Örnek:

Bir adet textbox ve butonumuz olsun. Butonun click eventine yazalım:

private void btnCalistir_Click(object sender, EventArgs e)
 {
 Hashtable programs = new Hashtable();
 programs.Add("txt", "notepad.exe");
 programs.Add("bmp", "mspaint.exe");
 programs.Add("ie", "iexplore.exe");
Process.Start(programs[textBox1.Text].ToString());
 }

Program her çalıştırıldığında textboxa girilen yazıya göre program çalıştırılacaktır. Yani txt yazılırsa notepad açılacak gibi.

SortedList Kolleksiyonu

SortedList Hashtable koleksiyonuna benzerdir, farkı bu koleksiyonda bilgiler sıralıdır ve hem key hem de
value değerlerine göre bilgiye erişim sağlamasıdır.

Örnek:

SortedList sirali = new SortedList();
 sirali.Add(12, "Ahmet");
 sirali.Add(1, "Mehmet");
 sirali.Add(5, "Can");
foreach (object obj in sirali.Values)
 {
 Console.WriteLine(obj);
 }

Program çalıştırıldığında sıralama key değerine göre yapılır.

Stack ve Queue Kolleksiyonları

İçindeki bilgileri son giren ilk çıkar (Last In Fırst Out –LIFO) sistemiyle tutan koleksiyona Stack, ilk giren ilk çıkar (First InnFirst Out –FIFO) sistemiyle tutan koleksiyona da Queue adı verilir.

Bu koleksiyonları kullanmanın faydası eleman sayısı belirtilmediği taktirde koleksiyon boyutunun otomatik olarak ayarlanmasıdır. Stack koleksiyonu default olarak 10 elemanlı bir koleksiyon dizisi oluştururken Queue koleksiyonunda ise dizi boyutu 32 elemanlıdır.

Örnek Queue:

Queue kuyruk = new Queue();
 kuyruk.Enqueue("Ahmet");
 kuyruk.Enqueue("Can");
 kuyruk.Enqueue("Mehmet");
 kuyruk.Enqueue("Onur");
Console.WriteLine(kuyruk.Peek());

Queue sınıfında diziye eleman ekleme Enqueue() metoduyla yapılır. Eklenen eleman dizinin sonuna eklenir. Dequeue() metodu ise, sıradaki elemanı geri döndürür ve sonra siler.

Örnek Steak:

Stack sarjor = new Stack();
 sarjor.Push("mermi1");
 sarjor.Push("mermi2");
 sarjor.Push("mermi3");
 sarjor.Push("mermi4");
 sarjor.Push("mermi5");
 sarjor.Push("mermi6");
Console.WriteLine(sarjor.Peek());

Stack sınıfında diziye ekleme işlemi Push() metoduyla yapılır. Eklenen eleman dizinin üstüne yerleşir. Pop() ise, sıranın sonundaki elemanı geri döndürür ve sonra siler.

Trackbacks

  1. […] önceki notlarımda kolleksiyonlar genel olarak yer almıştı. Burada iki kolleksiyon çeşidi olan Stack ve Queue kolleksiyonları […]