Sobes.tech
Junior

C#-də lüğət (Dictionary) nədir?

sobes.tech Süni İntellekt

AI-dan cavab

C# dilində Dictionary, "açar-dəyər" cütlərini saxlayan kolleksiyadır, burada hər bir açar unikal olur və müvafiq dəyərə sürətli giriş üçün istifadə olunur. IDictionary<TKey, TValue>, ICollection<KeyValuePair<TKey, TValue>>, IEnumerable<KeyValuePair<TKey, TValue>>, IEnumerable interfeyslərini həyata keçirir. Hash cədvəl üzərində qurulub.

Əsas xüsusiyyətlər:

  • Sıralanmamışdır: Sözlükdəki elementlərin sırası təmin edilmir və əlavə/silmə zamanı dəyişə bilər.
  • Performans: A əlavə etmə, silmə və axtarış əməliyyatlarının orta mürəkkəbliyi O(1) (ideal halda, hash toqquşmaları olmadan) və ən pis halda O(n).
  • Açarların unikal olması: Hər bir açar sözlükdə unikal olmalıdır. Mövcud açar ilə element əlavə etməyə cəhd istisna ilə nəticələnəcək.

İstifadə nümunəsi:

// Sözlük yaratmaq
Dictionary<string, int> şagirdlər = new Dictionary<string, int>();

// Elementlər əlavə etmək
şagirdlər.Add("Ivanov", 5);
şagirdlər["Petrov"] = 4; // Alternativ əlavə etmə/yeniləmə üsulu

// Açarın olub-olmadığını yoxlamaq
if (şagirdlər.ContainsKey("Ivanov"))
{
    // Açar vasitəsilə dəyəri almaq
    int qiymət = şagirdlər["Ivanov"]; // qiymət == 5
}

// Elementləri dövr etmək
foreach (KeyValuePair<string, int> şagird in şagirdlər)
{
    // şagird.Key - açar, şagird.Value - dəyər
    Console.WriteLine($"{şagird.Key}: {şagird.Value}");
}

// Elementi silmək
şagirdlər.Remove("Petrov");

Digər kolleksiyalarla müqayisə:

Kolleksiya Əsas məqsəd İndeks ilə giriş Açar ilə giriş Açarların unikal olması Sıralama
List<T> Elementlərin ardıcıllığı Bəli Xeyr Xeyr Bəli
HashSet<T> Unikal elementlər dəsti Xeyr Xeyr Bəli Xeyr
Dictionary<TKey, TValue> Sürətli axtarış üçün açar-dəyər cütləri Xeyr Bəli Bəli Xeyr