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