Junior
Дикт (Dictionary) дар C# чист?
sobes.tech AI
Ҷавоб аз AI
Словник (Dictionary) у C# — це колекція, яка зберігає пари "ключ-значення", де кожен ключ унікальний і використовується для швидкого доступу до відповідного значення. Реалізує інтерфейси IDictionary<TKey, TValue>, ICollection<KeyValuePair<TKey, TValue>>, IEnumerable<KeyValuePair<TKey, TValue>>, IEnumerable. Заснований на хеш-таблиці.
Основні характеристики:
- Неупорядкованість: Порядок елементів у словнику не гарантується і може змінюватися при додаванні/видаленні.
- Продуктивність: Операції додавання, видалення та пошуку за ключем мають середню складність O(1) (у ідеальному випадку, без колізій хешу) і O(n) у найгіршому випадку.
- Унікальність ключів: Кожен ключ має бути унікальним у словнику. Спроба додати елемент із існуючим ключем призведе до виключення.
Приклад використання:
// Створення словника
Dictionary<string, int> students = new Dictionary<string, int>();
// Додавання елементів
students.Add("Ivanov", 5);
students["Petrov"] = 4; // Альтернативний спосіб додавання/оновлення
// Перевірка наявності ключа
if (students.ContainsKey("Ivanov"))
{
// Отримання значення за ключем
int оцінка = students["Ivanov"]; // оцінка == 5
}
// Перебір елементів
foreach (KeyValuePair<string, int> student in students)
{
// student.Key — ключ, student.Value — значення
Console.WriteLine($"{student.Key}: {student.Value}");
}
// Видалення елемента
students.Remove("Petrov");
Порівняння з іншими колекціями:
| Колекція | Основне призначення | Доступ за індексом | Доступ за ключем | Унікальність ключів | Упорядкованість |
|---|---|---|---|---|---|
| List<T> | Послідовність елементів | Так | Ні | Ні | Так |
| HashSet<T> | Унікальний набір елементів | Ні | Ні | Так | Ні |
| Dictionary<TKey, TValue> | Пари ключ-значення для швидкого пошуку | Ні | Так | Так | Ні |