Sobes.tech
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> Пари ключ-значення для швидкого пошуку Ні Так Так Ні