11 Kasım 2010 Perşembe

C# System.Collections Sınıfı


Bu yazımızda size verileri saklamak için kullandığımız System.Collections sınıfı üyelerini anlatmaya çalışacağım..


Array : Önceden boyutu belli olan ve tek bir veri tipinin saklanacağı yapılar için uygun olan sınıftır. Sistem Boxing işlemi yapmadığından dolayı daha hızlı çalışır fakat diziyi oluşturuyorken sınırlarını çizdiğimizden dolayı bazen isteklerimizi karşılayamayabilir. İndeks değeri belirlediğimiz sınırı aşarsa çalışma zamanı hatası verir.
 tip[] dizi ismi = new tip[eleman sayısı] (string[] dizi=new string[57]) şeklinde oluşturulur.


ArrayList : Önceden boyutunu belirlememiz gerekmez eklediğimiz her veride sınıfın boyutu arttırılır. ArrayList oluşturduğumuz dizilere her türlü veri tipinden(int,string,double) elemanı
ekleyebiliriz. Sadece object tipinden veri tutar dolayısıyla eğer veri tipi object değil ise boxing işlemi uygulanır. Bu sebepten dolayı işleyişi biraz daha yavaştır.Add,Remove,Sort gibi komutlarla bu sınıfta işlem yapabiliriz.

Add : Bir nesneyi ArrayList’in sonuna ekler.
BinarySearch : Sıralanmış bir ArrayList içinde nesneyi Binary search algoriması kullanarak arar.
Clear : ArrayList’in tüm elemanlarını siler.Sıfırlar.
Contains : Herhangi bir nesnenin ArrayList’in elemanı olup olmadığını kontrol eder.
Insert : Dizinin sonuna değilde istediğimiz bir yerine indeksini belirterek eklememizi sağlar
Remove : Herhangi bir elemanı diziden siler.
Revorse : Diziyi ters çevirir.
Sort: Arraylist’i sıralar.

 ArrayList dizi =new ArrayList(); şeklinde oluştururuz.

dizi.Add(“Csharp”);
dizi.Add(“Kurdu”);

HashTable ve SortedList : Bu sınıflar verileri bir anahtarla ilişkilendirilirler. Bir tanesi Key bir tanesi de Value bilgisidir.Verileri kendi içerisinde keylere göre sıralar.Hashtable bu işlemleri hash kodlarına SortedList ise alfabetik sıralamaya göre yapar.Diziyi oluştururken diznin boyutunu belirtme zorunluluğu yoktur. SortedList, HashTable a göre daha yavaş çalışır.

HashTable’ı bir Örnekle somutlaştıralım

Hashtable dizi=new Hastable();
dizi.Add("3","Csharp");
dizi.Add("2","Kurdu");
dizi.Add("4","C#");
dizi.Add("1","Sql");
dizi.Add("5","Photoshop");
dizi.Add("7","Flash");
dizi.Add("6","Bilisim");
int adet=0;
foreach(object o in dizi.Values)
{
adet++;
}

SortedList’e Bir örnek verelim

SortedList dizi = new SortedList();

dizi.Add("3","Csharp");
dizi.Add("2","Kurdu");
dizi.Add("4","C#");
dizi.Add("1","Sql");
dizi.Add("5","Photoshop");
dizi.Add("7","Flash");
dizi.Add("6","Bilisim");

int adet=0;

foreach(object o in dizi.Values)
{
adet++;
}

Stack : Son elemana ulaşmak en kolaydır. İlk elemana ulaşmak için diğer tüm elemanları çıkarmak gerekir.Lifo(Last In First Out) Son giren ilk çıkar mantığıyla çalışır.

Her zamanki örneği verecek olursak : Bir lokantada yıkanan tabakların üst üste konulması ilk yıkanan tabak alttadır.Son yıkanan tabağa ulaşması kolaydır.

-Push() metodu koleksiyona eleman eklemek için kullanılır.
-Pop() metodu son giren elemanı verirken bu elemanı koleksiyondan siler.
-Sadece son elemanı görmek istiyorsak Peek() metodunu kullanırız.
Bir örnek verelim :
                     
                            Stack stc=new Stack();
                       stc.Push(“deneme”);  // eleman ekler.                       stc.Push(57);
                       stc.Push(True);
                       stc.Push(58);
                       stc.Pop(); //  Son girilen elemanı çıkarır.                       stc.Peek(); // Son girilen elemanın değerini gösterir.


Queue : Fifo(First In First Out) ilk giren ilk çıkar mantığıyla çalışır.Enqueue() metodu koleksiyona eleman eklemek için kullanılır.Dequeue() metodu koleksiyona giren ilk elemanı verirken elemanı koleksiyondan siler.Peek() komutu ise ilk elemanı bize gösterir.

                      Queue kuyruk=new Queue
                       kuyruk.Enqueue(“deneme”); // eleman ekler.                       kuyruk. Enqueue (57);
                       kuyruk. Enqueue (True);
                       kuyruk. Enqueue (58);
                       kuyruk. Dequeue (); //  İlk girilen elemanı çıkarır.                       kuyruk.Peek(); // İlk girilen elemanın değerini gösterir

Grafikuzey Web Tasarım ve Yazılım
Sinop Paşa Pansiyon

Hiç yorum yok:

Yorum Gönder