C# Queue Sınıfı

Merhabalar, C# derslerimize kaldığımız yerden devam ediyoruz. Bu dersimizde Queue yani kuyruk yapısının C#’ta kullanımını anlatacağım. Queue, FIFO yani First In First Out (ilk giren ilk çıkar) prensibine göre oluşturulmuş liste yapısıdır ve belkide tüm programlama dillerinde mevcuttur. Elbette C#’ta geri kalmamış ve Queue desteği var. Bu koleksiyon sınıfı System.Collections kütüphanesi altında bulunmakta ve isterseniz boş şekilde yada isterseniz daha önce oluşturduğunuz ICollection tipindeki listelerinizi kuyruğa dönüştürerek oluşturabilirsiniz. Şimdi öncelikle boş bir tane Queue nesnesi türetelim ve sonrasında yapabileceğimiz işlemlere bi göz atalım;
Queue kuyruk = new Queue();
Enqueue() metodu: Bu metod ile kuyruğa ekleme yapabiliyoruz. Kuyruk yapısının en güzel yanlarından biri farklı tipteki verileri tek kuyruk içerisinde tutabiliyor oluşumuz. Yani örneğin listelerde, sadece List nesnesi oluştururken belirttiğimiz tipte veriler tutabiliyoruz. Aynı şekilde Dictionary ve dizilerde de geçerli. Fakat kuyrukta böyle bir zorunluluk yok, bir kuyruk içerisinde birden fazla tipte veri saklanabiliyor. Örneğin biz “Softwaresup”, “Net”, 1, true verilerini daha önce oluşturduğumuz kuyruğa ekleyelim.
queue.Enqueue("Softwaresup");
queue.Enqueue("Net");
queue.Enqueue(1);
queue.Enqueue(true);
Dequeue() metodu: Bu metod ile kuyruktaki ilk elemanı kuyruktan silebiliyoruz ve bu silinen veriyide belki işimize yarar diye bize geri döndürüyor. Bizde bi örnek yapalım;
queue.Dequeue();
Clone() metodu: Bu metod ile kuyruğu kopyalayabiliyoruz ve bize object olarak veriyor, elbette biz bir kuyruğu kopyaladığımız için elle kuyruğa çevirebiliriz.
Queue kuyruk = queue.Clone() as Queue;
Contains() metodu: Bu metod ile istediğimiz bir verinin kuyruk içerisinde var olup olmadığını kontrol edebiliyoruz. Liste, dizi, string metodlarından olan Contains() ile aynı ve geriye bool tipinde veri döndürüyor. Veri varsa true, yoksa false döndürüyor.
bool varmi = queue.Contains("Softwaresup"); // true
bool varmi2 = queue.Contains(5); // false
Count propertisi: Bu property ile kuyruğun eleman sayısını öğrenebiliriz. Fakat değiştiremeyiz, yani sadece get metodu tanımlanmıştır. Tabi eleman sayısını verdiği için int tipinde veri alıyoruz.
int elemanSayisi = queue.Count;
Clear() metodu: Bu metod ile kuyruğu temizleyebiliyoruz, yani kuyruktaki bütün elemanları siliyor ve geriyede bişey döndürmüyor.
Peek() metodu: İlk giren elemanı object tipinde geri döndürür, sonrasında siz isterseniz farklı tiplere dönüştürebilirsiniz. Örneğin bizim oluşturduğumuz kuyruktaki ilk veriyi Peek() metodu ile alalım ve bizim kuyruğumuzdaki ilk verinin string olduğundan emin olduğumuz için direk string tipe dönüştürelim;
string ilkVeri = queue.Peek().ToString();
Evet C#’taki Queue yani kuyruk sınıfıda bu kadardı ve tabiki yazımda burada bitti 🙂 Tüm C# derslerimize buraya tıklayarak ulaşabilirsiniz. Herkese hayırlı günler.