Sobes.tech
Junior

C#'ta sözlük (Dictionary) nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

C# dilinde Dictionary, anahtar-değer çiftleri saklayan ve her anahtarın benzersiz olduğu, karşılık gelen değere hızlı erişim sağlayan bir koleksiyondur. IDictionary<TKey, TValue>, ICollection<KeyValuePair<TKey, TValue>>, IEnumerable<KeyValuePair<TKey, TValue>>, IEnumerable arayüzlerini uygular. Bir karma tabloya dayanır.

Ana özellikler:

  • Sıralı değil: Sözlükteki öğelerin sırası garanti edilmez ve ekleme/silme işlemleriyle değişebilir.
  • Performans: Ekleme, silme ve anahtar arama işlemleri ortalama O(1) karmaşıklığa sahiptir (ideal durumda, hash çakışmaları olmadan) ve en kötü durumda O(n).
  • Anahtarların benzersizliği: Her anahtar sözlükte benzersiz olmalıdır. Var olan anahtar ile öğe eklemeye çalışmak istisna oluşturur.

Kullanım örneği:

// Sözlük oluşturma
Dictionary<string, int> öğrenciler = new Dictionary<string, int>();

// Öğeler ekleme
öğrenciler.Add("Ivanov", 5);
öğrenciler["Petrov"] = 4; // Alternatif ekleme/güncelleme yöntemi

// Anahtarın var olup olmadığını kontrol etme
if (öğrenciler.ContainsKey("Ivanov"))
{
    // Anahtar ile değeri alma
    int not = öğrenciler["Ivanov"]; // not == 5
}

// Öğeleri döngüyle gezme
foreach (KeyValuePair<string, int> öğrenci in öğrenciler)
{
    // öğrenci.Key - anahtar, öğrenci.Value - değer
    Console.WriteLine($"{öğrenci.Key}: {öğrenci.Value}");
}

// Öğeyi kaldırma
öğrenciler.Remove("Petrov");

Diğer koleksiyonlarla karşılaştırma:

Koleksiyon Temel amacı İndeksle erişim Anahtar ile erişim Anahtarların benzersizliği Sıralama
List<T> Öğelerin sıralı dizisi Evet Hayır Hayır Evet
HashSet<T> Benzersiz öğe kümesi Hayır Hayır Evet Hayır
Dictionary<TKey, TValue> Hızlı arama için anahtar-değer çiftleri Hayır Evet Evet Hayır