Collections
Uygulamalarda birden fazla veri veya nesneleri saklamak için
kullanılan yapılardır . Collection nesnesi array nesnesine göre daha esnek bir
çalışma sunar .
Collections kullanmadan önce projeye namespace i
eklenmelidir . Eğer collection daki nesnelerin veri tipi tek bir veri tipi ise
System.Collection.Generic namespace i
projeye eklenmelidir . Bu şekilde başka veri tiplerinin eklenmesi
engellenebilinir. Aynı zamanda collectionları kullanarak saklamak istediğiniz verileri key-value
şeklinde saklayabilirsiniz .
Biz öncelikle generic olmayan sınıflardan bahsedelim .
ArrayList , SortedList , Stack ve Queu sınıfları System.Collection namespace i
adı altında ve generic olmayan sınıflardır . Bu sınıflar IList ,
IEnumerator , IEnumerable , IDictionary interfacelerini uygulamaktadır
.
Öncelikle generic olmayan collectionların kullanımına bir
örnek verelim . ArrayList sınıfını kullanacağız ..
ArrayList
Öncelikle namespace i eklememiz gerekiyor .
using System.Collections;
Sonra ArrayList sınıfından bir nesne oluşturup
içerisine istediğimiz tipte veri ekliyoruz .
static void Main(string[] args)
{
ArrayList list = new ArrayList();
list.Add(2);
list.Add("name");
}
Burada ArrayList nesnesine eleman ekelemek için Add()
metodunu kullandık .
Stack
Stack classı yığın veri yapısı şeklinde düşünülebilinir.
Yani elemanlarda son giren ilk çıkar mantığı vardır .
Object tipinde veri saklarlar ve stack nesnesine eleman eklemek için Push()
metodu kullanılır .
Stack classının örnek bir kullanımı aşağıdaki gibidir .
Stack stacklist = new Stack();
stacklist.Push("Stack1");
stacklist.Push("Stack2");
stacklist.Push("Stack3");
Queue
Queue classında kuyruk veri yapısı şeklinde düşünlebilinir. Burada
queue nesnesinin elemanları için ilk giren ilk çıkar mantığı vardır .
Queue nesnesine eleman eklemek için Enqueue() metodu kullanılmaktadır
. Örnek kullanım aşağıdaki gibidir .
Queue queuList = new Queue();
queuList.Enqueue("queulis1");
queuList.Enqueue("queulis2");
queuList.Enqueue("queulis3");
Hashtable Sınıfı
Hashtable classı ile saklamak istediğiniz verileri key-value
şeklinde saklayabilirsiniz .
Örnek kullanımı aşağıdaki gibidir .
Hashtable hashList = new Hashtable();
hashList.Add("222", "Eskişehir");
hashList.Add("252", "Muğla");
hashList.Add("236", "Manisa");
Burada Hashtable nesnesine eleman eklemek için Add()
metodunu kullandık . Bu metodun ilk parametresi key , ikinci parametresi ise
object tipinde value dur .
Console.WriteLine(hashList["222"].ToString());
Metodu ile ekrana Eskişehir yazacaktır .
SortedList Sınıfı
SortedList nesneside aynı Hashtable nesnesi gibi key-value şeklinde
verileri saklar . Hashtable nesnesinden farklı olarak bu nesneleri sıralı bir
şekilde saklar .
SortedList sortList = new SortedList();
sortList.Add("222", "Eskişehir");
sortList.Add("252", "Muğla");
sortList.Add("236", "Manisa");
Burada SortedList nesnesine Add() metodu ile
elemanlarımızı ekliyoruz .
Bu kısımda ise SortedList nesnesinde bulunan elemanlardan 0. İndexe sahip key ve value değerlerini ekrana yazdırıyoruz . Burada kullandığımız GetKey() metodu 0.indexe sahip elemanın keyini alıyoruz . GetByIndex() metodu ile 0. İndexe sahip value değerini alıyoruz .
Console.WriteLine(sortList.GetKey(0).ToString());
Console.WriteLine(sortList.GetByIndex(0).ToString());
Console.ReadLine();Bu kısımda ise SortedList nesnesinde bulunan elemanlardan 0. İndexe sahip key ve value değerlerini ekrana yazdırıyoruz . Burada kullandığımız GetKey() metodu 0.indexe sahip elemanın keyini alıyoruz . GetByIndex() metodu ile 0. İndexe sahip value değerini alıyoruz .