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 |