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 Koleksiyon | Erişim Yöntemi | |||
|---|---|---|---|---|---|
| Basit, sıralı bir liste tutmak | List<T> | İndeks (0, 1...) | Hızlı arama ve eşleştirme yapmak | Dictionary<K, V> | Benzersiz Anahtar (Key) |
| Geliş sırasına göre işlem yapmak | Queue<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.