C# (C Sharp) Ders 11 – Koleksiyonlar (Collections) – Queue<T>

Queue<T>, FIFO (First In, First Out – İlk Giren İlk Çıkar) prensibiyle çalışan bir koleksiyondur. Yani, ilk eklenen eleman ilk çıkarılır. Bir kuyruk gibi düşünebiliriz; insanlar sırayla bekler ve sıra geldiğinde hizmet alırlar. “T”, kuyruğun içinde tutacağı veri türünü temsil eder.

Kullanım Alanları

  • Görevleri sıraya koyma (örneğin, yazdırma görevleri, işlem görevleri)
  • Breadth-First Search (BFS) algoritması uygulamaları
  • Mesajlaşma sistemlerinde mesaj kuyruğu oluşturma
  • Veri işleme hattı (pipeline) oluşturma

Queue<T> Oluşturma ve Eleman Ekleme/Çıkarma

C#
using System;
using System.Collections.Generic;

public class QueueOrnegi
{
    public static void Main(string[] args)
    {
        // Boş bir string kuyruğu oluşturma
        Queue<string> gorevler = new Queue<string>();

        // Eleman ekleme (Enqueue)
        gorevler.Enqueue("Yazıcıya gönder");
        gorevler.Enqueue("Veritabanına kaydet");
        gorevler.Enqueue("E-posta gönder");

        // Eleman çıkarma (Dequeue)
        string ilkGorev = gorevler.Dequeue(); // "Yazıcıya gönder" çıkarılır
        Console.WriteLine($"İlk görev: {ilkGorev}");

        foreach (string gorev in gorevler)
        {
            Console.WriteLine(gorev);
        }
    }
}

Queue<T>’in Özellikleri

  • Count: Kuyruktaki eleman sayısını döndürür.

Queue vs Stack

Özellik Queue (Kuyruk) Stack (Yığın)
Çalışma Prensibi FIFO LIFO
Eleman Ekleme Enqueue Push
Eleman Çıkarma Dequeue Pop
Kullanım Alanları Görev sırası, BFS Geri alma, DFS

Koleksiyon Seçimi

Hangi koleksiyonu kullanacağınız uygulamanızın gereksinimlerine bağlıdır. Eğer elemanların sırayla işlenmesi gerekiyorsa Queue<T>’yi, son eklenen elemanın ilk işlenmesi gerekiyorsa Stack<T>’yi tercih etmelisiniz.

Kaynak: https://learn.microsoft.com/tr-tr/dotnet/csharp/tour-of-csharp/tutorials/