4 Mayıs 2014 Pazar

Collections

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 .


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 .