В классе Hashtable
Hashtable
, вызывается метод ContainsKey()
. А для того чтобы выяснить, хранится ли в такой коллекции конкретное значение, вызывается метод ContainsValue()
. Для перечисления содержимого коллекции типа Hashtable
служит метод GetEnumerator()
, возвращающий объект типа IDictionaryEnumerator
. Напомним, что IDictionaryEnumerator
— это перечислитель, используемый для перечисления содержимого коллекции, в которой хранятся пары "ключ-значение".Таблица 25.5. Наиболее часто используемые методы, определенные в классе Hashtable
Метод -
Описаниеpublic virtual bool ContainsKey(object
public virtual bool ContainsValue(object
public virtual IDictionaryEnumerator GetEnumerator() -
Возвращает для вызывающей коллекции типа Hashtable перечислитель типа IDictionaryEnumeratorpublic static Hashtable Synchronized(Hashtable
В классе Hashtable
Keys
и Values
, поскольку с их помощью можно получить ключи или значения из коллекции типа Hashtable
. Эти свойства определяются в интерфейсе IDictionary
следующим образом.public virtual ICollection Keys { get; }
public virtual ICollection Values { get; }
В классе Hashtable
Hashtable
имеется защищенное свойство EqualityComparer
. А два других свойства, hcp
и comparer
, считаются устаревшими.Пары "ключ-значение" сохраняются в коллекции типа Hashtable
DictionaryEntry
, но чаще всего это делается без прямого вмешательства со стороны пользователя, поскольку свойства и методы оперируют ключами и значениями по отдельности. Если, например, в коллекцию типа Hashtable
добавляется элемент, то для этой цели вызывается метод Add()
, принимающий два аргумента: ключ и значение.Нужно, однако, иметь в виду, что сохранение порядка следования элементов в коллекции типа Hashtable
Ниже приведен пример программы, в которой демонстрируется применение класса Hashtable
// Продемонстрировать применение класса Hashtable.
using System;
using System.Collections;
class HashtableDemo {
static void Main() {
// Создать хеш-таблицу.
Hashtable ht = new Hashtable();
// Добавить элементы в таблицу.
ht.Add("здание", "жилое помещение");
ht.Add("автомашина", "транспортное средство");
ht.Add("книга", "набор печатных слов");
ht.Add("яблоко", "съедобный плод");
// Добавить элементы с помощью индексатора,
ht["трактор"] = "сельскохозяйственная машина";
// Получить коллекцию ключей.
ICollection с = ht.Keys;
// Использовать ключи для получения значений,
foreach(string str in с)
Console.WriteLine(str + ": " + ht[str]);
}
}
Выполнение этой программы приводит к следующему результату.
здание: жилое помещение
книга: набор печатных слов