Иллюстрированный самоучитель по VB.NET

IDictionary


Интерфейс IDictionary представляет коллекцию, в которой доступ к данным осуществляется по ключу — как в хэш-таблицах, описанных в предыдущей главе. Более того, класс хэш-таблиц в числе прочих реализует интерфейсы IDictionary, ICollection, Enumerable и ICloneable!

Хотя интерфейс IDictionary объявляется производным от Enumerable и переход к следующему элементу может осуществляться методом MoveNext, обычно такая возможность не используется — коллекции, реализующие IDictionary, ориентируются в первую очередь на обращение по ключу, а не на последовательный перебор элементов. По этой причине интерфейс IDictionary зависит от интерфейса IDic-tionaryEnumerator, который расширяет Enumerator и дополняет его тремя новыми свойствами:

  • Entry: возвращает пару «ключ/значение» для текущего элемента словаря.
  • Key: возвращает текущий ключ.
  • Value: возвращает ссылку на текущее значение.

    В .NET Framework входит класс DictionaryBase. Определяя класс производным от DictionaryBase, вы получаете в свое распоряжение всю функциональность интерфейса IDictionary.

    Члены класса IDictionary перечислены в табл. 5.4.

    Поскольку ключи в ассоциативных коллекциях должны быть уникальными, при реали-зации большинства методов необходимо сначала проверить, не был ли заданный ключ использован ранее. Свойство Keys возвращает объект, реализующий ICollection; уникальность ключа проверяется методом,Соп1а1п5 интерфейса ICollection.

    Таблица 5.4. Члены интерфейса IDictionary

    Метод/свойство



    Описание

    IsFixedSize (свойство)

    Логическое свойство. Показывает, имеет ли коллекция фиксированный размер

    IsReadOnly (свойство)

    Логическое свойство. Показывает, доступна ли коллекция только для чтения

    Item (свойство)

    Свойство доступно для чтения и записи. Используется для получения и присваивания значения объекта с заданным индексом

    Keys (свойство)

    Возвращает объект, реализующий интерфейс ICollection и содержащий все ключи ассоциативной коллекции

    Values (свойство)

    Возвращает объект, реализующий интерфейс ICollection и содержащий все значения ассоциативной коллекции

    Add(ByVal key As Object, ByVal value As Object) (метод)

    Добавляет объект с заданным ключом (ключ должен быть уникальным)

    Clear (метод)

    Удаляет все элементы из ассоциативной коллекции

    Contains (ByVal key As Object) As Boolean (метод)

    Ищет значение с заданным ключом

    GetEnumerator (метод)

    Возвращает объект IDictionaryEnumerator для работы с ключами и значениями

    Remove(ByVal key As Object) (метод)

    Удаляет элемент с заданным ключом



    Содержание раздела