C# (C Sharp) Ders 9 – Koleksiyonlar (Collections) – Dictionary<TKey, TValue>

Dictionary<TKey, TValue>, anahtar-değer çiftleri şeklinde eleman saklayan bir koleksiyondur. Her anahtar benzersiz olmalıdır. Anahtarlar aracılığıyla değerlere hızlı erişim sağlar. “TKey”, anahtarın veri türünü, “TValue” ise değerin veri türünü temsil eder.

Kullanım Alanları

  • Kullanıcı adlarını ve şifrelerini saklama
  • Ürün ID’lerini ve ürün bilgilerini eşleştirme
  • Frekans sayımı (kelime frekansı, vb.)
  • Konfigürasyon ayarlarını yönetme

Dictionary<TKey, TValue> Oluşturma ve Eleman Ekleme/Çıkarma/Güncelleme

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

public class DictionaryOrnegi
{
    public static void Main(string[] args)
    {
        // Boş bir string-int dictionary oluşturma (isim - yaş eşleşmesi)
        Dictionary<string, int> yaslar = new Dictionary<string, int>();

        // Eleman ekleme
        yaslar.Add("Ayşe", 30);
        yaslar.Add("Fatma", 25);
        yaslar.Add("Ali", 40);

        // Eleman çıkarma
        yaslar.Remove("Fatma");

        // Anahtar var mı kontrolü
        if (yaslar.ContainsKey("Ayşe"))
        {
            Console.WriteLine("Ayşe dictionary'de var.");
        }

        // Değer alma (TryGetValue daha güvenli)
        int yas;
        if (yaslar.TryGetValue("Ali", out yas))
        {
            Console.WriteLine($"Ali'nin yaşı: {yas}"); // Ali'nin yaşı: 40
        }
    }
}

Anahtarlara Göre Erişme

Dictionary<TKey, TValue>’deki değerlere anahtarları kullanarak erişebiliriz.

C#
int ayseYasi = yaslar["Ayşe"]; // Ayşe'nin yaşına erişir (30)
Console.WriteLine(ayseYasi);

Dictionary<TKey, TValue>’in Özellikleri

  • Count: Dictionary’deki eleman sayısını döndürür.

Dictionary<TKey, TValue> ile Döngüler (Foreach – KeyValuePair)

C#
foreach (KeyValuePair<string, int> kvp in yaslar)
{
    Console.WriteLine($"İsim: {kvp.Key}, Yaş: {kvp.Value}");
}

Dictionary<TKey, TValue>’in Yaygın Kullanım Senaryoları

Veri arama: Anahtara göre hızlı bir şekilde değere erişim sağlar.

Frekans sayımı: Bir metindeki kelime frekanslarını hesaplamak için kullanılabilir.

Konfigürasyon yönetimi: Uygulama ayarlarını saklamak ve yönetmek için idealdir.

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