Призначення класу Dictionary — зберігання пар "ключ-значення" для пошуку за ключем.
Загальне уявлення про клас Dictionary можна отримати, переглянувши код програми та проаналізувавши її виведенням для словника, у якому і ключі, і значення мають тип string.
У поданому далі описі:
Зауваження
Якщо об'єкт використано як ключ, його не можна змінювати таким чином, що впливає на його хеш-значення. Кожен ключ повинен бути унікальним відповідно до порівнювача словника. Ключ не може бути null, але значення може таким бути, якщо його тип є типом посилання.
Dictionary вимагає втілення відношення рівності, щоб порівнювати ключі. Можна замовити використання універсального інтерфейсу за допомогою конструктора, що приймає параметр IEqualityComparer<T>. Якщо не вказати втілення, буде використано засіб порівняння EqualityComparer<T>.Default як усталено. Якщо тип ключів втілює універсальний інтерфейс System.IEquatable<T>, засіб порівняння на рівність як усталено використовує саме таке втілення. Наприклад, можна використовувати порівняння рядків без урахування регістру, що надаються класом StringComparer, для створення словників з нечутливими до регістру рядковими ключами.
Лише для платформи .NET Framework: максимальну ємність можна збільшити до 2 мільярдів елементів у 64-розрядній системі, надавши значення true властивості <gcAllowVeryLargeObjects> елемента конфігурації в середовищі виконання.
У переліку кожний елемент у словнику розглядають як структуру, що представляє значення та ключ. Порядок повернення елементів не визначено.
Оператор foreach повертає об'єкт типу елементів колекції. Тип елемента не є типом ключа TKey чи типом значення TValue. Натомість тип елемента є типом KeyValuePair<TKey,TValue> Оператор foreach є оболонкою навколо засобу переліку, який дозволяє лише зчитувати дані з колекції, а не записувати до неї.
Ключі можуть бути успадковані та їхня поведінка змінена, їхню абсолютну унікальність не гарантовано порівнянням за допомогою методу Equals.
Dictionary<TKey, TValue>() — ініціалізує новий порожній представник класу, що має початкову ємність як усталено і використовує функцію порівняння як усталено.
Dictionary<TKey, TValue> (IDictionary<TKey, TValue>) — ініціалізує новий представник класу, який містить елементи, скопійовані з колекції IDictionary<TKey, TValue>, та використовує функцію порівняння як усталено.
Dictionary<TKey, TValue> (IDictionary<TKey, TValue>, IEqualityComparer<TKey>) — ініціалізує новий екземпляр класу, який містить елементи, скопійовані з колекції IDictionary<TKey,TValue>, та використовує вказаний інтерфейс IEqualityComparer<T>.
Dictionary<TKey, TValue> (IEnumerable<KeyValuePair<TKey, TValue>>) — ініціалізує новий екземпляр класу, який містить елементи, скопійовані з об'єкта IEnumerable<T>.
Dictionary<TKey, TValue> (IEnumerable<KeyValuePair<TKey, TValue>>, IEqualityComparer<TKey>) — ініціалізує новий екземпляр класу, який містить елементи, скопійовані зі словника IEnumerable<T>, та використовує порівнювач IEqualityComparer<T>.
Dictionary<TKey, TValue> (IEqualityComparer<TKey>) — ініціалізує новий порожній екземпляр класу з початковою ємністю як усталено, який використовує вказану функцію порівняння IEqualityComparer<T>.
Dictionary<TKey, TValue> (Int32) — ініціалізує новий порожній екземпляр класу, що має задану початкову ємність і використовує функцію порівняння як усталено, що перевіряє рівність для цього типу ключа.
Dictionary<TKey, TValue> (Int32, IEqualityComparer<TKey>) — ініціалізує новий порожній екземпляр класу із заданою початковою ємністю, який використовує вказану функцію порівняння IEqualityComparer<T>.
Dictionary<TKey,TValue>(SerializationInfo, StreamingContext) — ініціалізує новий екземпляр класу із серіалізованими даними.
Властивості
Методи
Додаткові дані про явні втілення інтерфейсу, методи розширення потоко-безпечність подано на сторінці сайту learn.microsoft.com.