В первом конструкторе создается пустой словарь с выбираемой по умолчанию первоначальной емкостью. Во втором конструкторе создается словарь с указанным количеством элементов
В классе Dictionary
Таблица 25.17. Наиболее часто используемые методы, определенные в классе Die tionaryCTKey, TValue>
Метод - Описание
public void Add(TKey
public bool ContainsKey(TKey
public bool ContainsValue(TValue
public bool Remove(TKey
Кроме того, в классе Dictionary
определяются собственные свойства, помимо тех, что уже объявлены в интерфейсах, которые в нем реализуются. Эти свойства приведены ниже.
Свойство - Описание
public IEqualityComparer
public Dictionary
public Dictionary
Следует иметь в виду, что ключи и значения, содержащиеся в коллекции, доступны отдельными списками с помощью свойств Keys
и Values
. В коллекциях типа DictionaryCTKey, TValue>.KeyCollection
и Dictionary
реализуются как обобщенные, так и необобщенные формы интерфейсов ICollection
и IEnumerable
.
И наконец, в классе DictionaryCTKey, TValue>
реализуется приведенный ниже индексатор, определенный в интерфейсе IDictionary
public TValue this[TKey key] { get; set; }
Этот индексатор служит для получения и установки значения элемента коллекции, а также для добавления в коллекцию нового элемента. Но в качестве индекса в данном случае служит ключ элемента, а не сам индекс.
При перечислении коллекции типа DictionaryCTKey, TValue> из нее возвращаются пары "ключ-значение" в форме структуры KeyValuePairCTKey, TValue>
Напомним, что в этой структуре определяются два поля.
public TKey Key;
public TValue Value;
В этих полях содержится ключ или значение соответствующего элемента коллекции. Как правило, структура KeyValuePairCTKey, TValue>
не используется непосредственно, поскольку средства класса DictionaryCTKey, TValue>
позволяют работать с ключами и значениями по отдельности. Но при перечислении коллекции типа Dictionary
, например, в цикле foreach
перечисляемыми объектами являются пары типа KeyValuePair
.
Все ключи в коллекции типа DictionaryCTKey, TValue>
должны быть уникальными, причем ключ не должен изменяться до тех пор, пока он служит в качестве ключа. В то же время значения не обязательно должны быть уникальными. К тому же объекты не хранятся в коллекции типа DictionaryCTKey, TValue>
в отсортированном порядке.
В приведенном ниже примере демонстрируется применение класса DictionaryCTKey, TValue>
// Продемонстрировать применение класса обобщенной
// коллекции DictionaryCTKey, TValueX
using System;
using System.Collections.Generic;
class GenDictionaryDemo {
static void Main() {