Dictionary в C# - это обобщенная коллекция, которая представляет собой ассоциативный массив, где каждый элемент представляет пару "ключ-значение". Он является основным инструментом для работы с данными в форме пар "ключ-значение" и обеспечивает быстрый доступ к значениям по ключу.
Dictionary предоставляет эффективное выполнение операций вставки, удаления и поиска элементов. Он реализован на основе хэш-таблицы, что обеспечивает постоянное время выполнения этих операций, независимо от размера словаря. В своей основе Dictionary использует хэширование для определения индекса элемента во внутренней структуре данных.
Основные свойства и методы, доступные в классе Dictionary:
- Count: позволяет получить количество элементов в словаре.
- Keys: возвращает коллекцию ключей, содержащихся в словаре.
- Values: возвращает коллекцию значений, содержащихся в словаре.
- Add(key, value): добавляет новую пару "ключ-значение" в словарь.
- Remove(key): удаляет элемент с указанным ключом из словаря.
- TryGetValue(key, out value): пытается получить значение по указанному ключу, возвращает true, если такой ключ присутствует и значение было успешно получено.
- ContainsKey(key): проверяет наличие элемента с указанным ключом в словаре, возвращает true, если элемент есть, иначе - false.
Для использования Dictionary необходимо подключить пространство имен System.Collections.Generic. Для создания экземпляра словаря задается тип ключа и тип значения в угловых скобках. Например:
Dictionary<string, int> myDictionary = new Dictionary<string, int>();
Далее можно добавлять элементы в словарь используя метод Add():
myDictionary.Add("key1", 10); myDictionary.Add("key2", 20);
И получать значения по ключу:
int value1 = myDictionary["key1"];
Также можно использовать foreach для перебора элементов в словаре:
foreach (KeyValuePair<string, int> kvp in myDictionary) { Console.WriteLine("Key: {0}, Value: {1}", kvp.Key, kvp.Value); }
Обратите внимание, что при использовании оператора [] для получения значения по ключу, если такого ключа нет в словаре, будет вызвано исключение KeyNotFoundException. Чтобы избежать этого, можно использовать метод TryGetValue(), который позволяет проверить наличие ключа и получить значение без вызова исключения.
Dictionary в C# является очень мощным и полезным инструментом, который обеспечивает эффективное выполнение операций поиска, вставки и удаления элементов. Он широко используется во множестве задач программирования и разработки приложений.