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.
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.
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.