Нужно, однако, иметь в виду, что сохранение порядка следования элементов в коллекции типа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(intinitialCapacity)public SortedList(IComparercomparer)

Перейти на страницу:

Похожие книги