Sobes.tech
Junior
126
questionbank

Что такое словарь (Dictionary) в C#?

Ответ от нейросети

sobes.tech 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 mark = students["Ivanov"]; // mark == 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, TV> Пары ключ-значение для быстрого поиска Нет Да Да Нет