C# Koleksiyonlar (Collections)

Dizilerin boyutu tanımlandığında sabitlenir. Ancak gerçek hayattaki projelerde veri miktarı sürekli değişebilir. Koleksiyonlar, bellekte dinamik olarak büyüyüp küçülebilen, daha esnek ve güçlü veri yapıları sunar.

Generic Koleksiyonlar Nedir?

C#'ta en çok Generic (tip güvenli) koleksiyonlar tercih edilir. Bu yapılar tanımlanırken hangi veri tipini tutacağı belirtilir (List<int> gibi). Bu sayede hem performans artar hem de yanlış veri tipi girişinden kaynaklanan hatalar önlenir.

1) List<T> Kullanımı

Dizilerin modern ve dinamik halidir. İstenildiği kadar eleman eklenebilir veya silinebilir.

C# List Example
using System.Collections.Generic;

List<string> isimler = new List<string>();

// Eleman ekleme
isimler.Add("Ahmet");
isimler.Add("Zeynep");
isimler.Add("Mehmet");

// Eleman silme
isimler.Remove("Ahmet");

// Sayısını öğrenme
Console.WriteLine("Toplam isim: " + isimler.Count);

// Döngü ile gezme
foreach (var isim in isimler) {
    Console.WriteLine(isim);
}

2) Dictionary<TKey, TValue> Kullanımı

Verileri "Anahtar-Değer" (Key-Value) çiftleri halinde saklar. Bir anahtar üzerinden değere çok hızlı erişim sağlar.

C# Dictionary Example
Dictionary<int, string> plakalar = new Dictionary<int, string>();

plakalar.Add(06, "Ankara");
plakalar.Add(34, "İstanbul");
plakalar.Add(35, "İzmir");

// Anahtar üzerinden erişim
Console.WriteLine(plakalar[06]); // Çıktı: Ankara

Dizi (Array) ve List Karşılaştırması

Özellik Array (Dizi) List (Koleksiyon)
Boyut Sabittir (Statik) Değişkendir (Dinamik)
Erişim Hızı Çok Hızlı Hızlı
Kütüphane Yerleşik System.Collections.Generic
⚠️ Performans Notu: Eğer veri sayınız hiç değişmeyecekse diziler daha az bellek tüketir. Ancak veri ekleme/çıkarma yapılacaksa List her zaman daha mantıklıdır.

Özet

  • List<T>: Sıralı veriler için en ideal koleksiyondur.
  • Dictionary<K,V>: Hızlı arama ve eşleştirme işlemleri için kullanılır.
  • Count özelliği koleksiyonun güncel boyutunu verir.
  • Generic koleksiyonlar kullanmak "Boxing/Unboxing" maliyetini önleyerek performansı artırır.