Нужно, однако, иметь в виду, что сохранение порядка следования элементов в коллекции типа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]);
}
}
Выполнение этой программы приводит к следующему результату.
здание: жилое помещение книга: набор печатных слов трактор: сельскохозяйственная машина автомашина: транспортное средство яблоко: съедобный плод
Как следует из приведенного выше результата, пары "ключ-значение" сохраняются в произвольном порядке. Обратите внимание на то, как получено и отображено содержимое хеш-таблицыht.Сначала была получена коллекция ключей с помощью свойстваKeys.Затем каждый ключ был использован для индексирования хеш-таблицыhtс целью извлечь из нее значение, соответствующее заданному ключу. Напомним, что в качестве индекса в данном случае использовался индексатор, определенный в интерфейсеIDictionaryи реализованный в классеHashtable.
Класс SortedList
КлассSortedListпредназначен для создания коллекции, в которой пары "ключ-значение" хранятся в порядке, отсортированном по значению ключей. В классеSortedListреализуются интерфейсыIDictionary, ICollection, IEnumerableиICloneable.
В классеSortedListопределено несколько конструкторов, включая следующие.
public SortedList public SortedList(IDictionary d) public SortedList(int