Collections: List, Dictionary ve Queue Kullanım Rehberi

crazy_coder

Moderatör
Katılım
20 Şub 2026
Mesajlar
204
Tepkime puanı
0
Puanları
16

C# Koleksiyonlar: List, Dictionary ve Queue Kullanım Rehberi​


C#'ta koleksiyonlar, verileri bellekte organize etmenin en etkili yoludur. Farklı senaryolar için farklı koleksiyon tipleri tasarlanmıştır. Doğru koleksiyonu seçmek, uygulamanızın performansını ve kodun okunabilirliğini doğrudan etkiler.



1. List<T>: Dinamik ve Esnek Diziler​


En popüler koleksiyon yapısıdır. Dizilere benzer ancak boyutu sabit değildir. Elemanlar eklendikçe otomatik olarak genişler.


  • []Kullanım Amacı: Sıralı verileri saklamak ve indeks (0, 1, 2...) üzerinden erişmek.
    []Özelliği: Aynı elemandan birden fazla barındırabilir.

C#:
List<string> sehirler = new List<string>();
sehirler.Add("İstanbul");
sehirler.Add("Ankara");
sehirler.Add("İzmir");

// Veriye erişim
Console.WriteLine(sehirler[0]); // İstanbul

// Eleman silme
sehirler.Remove("Ankara");



2. Dictionary<TKey, TValue>: Anahtar-Değer Çiftleri​


Verilere bir indeks numarası yerine, kendi belirlediğiniz bir "anahtar" (Key) üzerinden erişmek istiyorsanız kullanılır. Gerçek hayattaki bir sözlük veya telefon rehberi gibi çalışır.


  • []Kullanım Amacı: Benzersiz bir anahtar üzerinden hızlı veri araması yapmak.
    []Özelliği: Anahtarlar (Key) benzersiz olmalıdır.

C#:
Dictionary<int, string> plakalar = new Dictionary<int, string>();
plakalar.Add(34, "İstanbul");
plakalar.Add(06, "Ankara");

// Anahtar üzerinden erişim
if (plakalar.ContainsKey(34))
{
Console.WriteLine($"34 plaka kodu: {plakalar[34]}");
}



3. Queue<T>: İlk Gelen İlk Çıkar (FIFO)​


"Queue" (Kuyruk) yapısı, gerçek hayattaki bir ekmek veya banka kuyruğu gibi çalışır. Sisteme ilk eklenen eleman, ilk olarak işlenir ve çıkarılır. Buna FIFO (First-In, First-Out) denir.


  • []Kullanım Amacı: İşlem sırasına göre yönetilmesi gereken veriler (Yazıcı kuyruğu, mesaj iletimi vb.).
    []Temel Metotlar: Enqueue (Ekle), Dequeue (En baştakini al ve çıkar), Peek (Çıkarmadan bak).

C#:
Queue<string> mesajlar = new Queue<string>();
mesajlar.Enqueue("Mesaj 1"); // Kuyruğa ekle
mesajlar.Enqueue("Mesaj 2");

string siradaki = mesajlar.Dequeue(); // "Mesaj 1"i alır ve listeden siler
Console.WriteLine($"İşleniyor: {siradaki}");



Koleksiyon Seçim Tablosu​


İhtiyaçÖnerilen KoleksiyonErişim Yöntemi
Basit, sıralı bir liste tutmakList<T>İndeks (0, 1...)Hızlı arama ve eşleştirme yapmakDictionary<K, V>Benzersiz Anahtar (Key)
Geliş sırasına göre işlem yapmakQueue<T>Sırayla (Baştan Sona)
Son giren ilk çıksın (LIFO)Stack<T>Tersten (Sondan Başa)

[TR]



Sonuç​


Koleksiyonlar, C# programlamanın "alet çantasıdır". Verilerinizle ne yapacağınıza bağlı olarak doğru aleti seçmelisiniz. Genellikle işlerin %80'ini List ve Dictionary ile çözebilirsiniz, ancak işlem sırası veya yığın yönetimi gibi özel durumlarda Queue ve Stack yapıları hayat kurtarır.
 
Geri
Üst