**
Порядок сбора ключей основан на ячейке, в которой был сохранен элемент ключа. Слот, в котором хранится элемент, зависит от значения хэша ключа и стратегии разрешения коллизий.
**
Чтобы извлечь элемент из Hashtable, вы можете индексировать Hashtable по ключу, как если бы вы индексировали массив по порядковому значению. Следующая короткая программа на C # демонстрирует эту концепцию. Он добавляет несколько элементов в Hashtable, связывая строковый ключ с каждым элементом. Затем к конкретному элементу можно получить доступ с помощью строкового ключа.
с использованием системы;
using System.Collections;
публичный класс HashtableDemo
{
частные статические сотрудники Hashtable = new Hashtable ();
public static void Main()
{
// Add some values to the Hashtable, indexed by a string key
employees.Add("111-22-3333", "Scott");
employees.Add("222-33-4444", "Sam");
employees.Add("333-44-55555", "Jisun");
// Access a particular key
if (employees.ContainsKey("111-22-3333"))
{
string empName = (string) employees["111-22-3333"];
Console.WriteLine("Employee 111-22-3333's name is: " + empName);
}
else
Console.WriteLine("Employee 111-22-3333 is not in the hash table...");
}
}
Этот код также демонстрирует метод ContainsKey (), который возвращает логическое значение, указывающее, был ли найден указанный ключ в Hashtable. Класс Hashtable содержит свойство Keys, которое возвращает коллекцию ключей, используемых в Hashtable. Это свойство может использоваться для перечисления элементов в Hashtable, как показано ниже:
// Пройти через все элементы в Hashtable
foreach (строковый ключ у сотрудников. Ключи)
Console.WriteLine ("Значение у сотрудников [\" "+ ключ +" \ "] =" + сотрудников [ключ] .ToString ());
Поймите, что порядок, в котором элементы вставлены, и порядок ключей в коллекции ключей не обязательно совпадают. Порядок сбора ключей основан на слоте, в котором был сохранен элемент ключа. Слот, в котором хранится элемент, зависит от значения хэша ключа и стратегии разрешения коллизий. Если вы запустите приведенный выше код, вы увидите, что порядок перечисления элементов не обязательно совпадает с порядком, в котором элементы были добавлены в Hashtable. Запуск вышеуказанных кодовых выходов:
ценность у сотрудников ["333-44-5555"] = Jisun
Значение у сотрудников ["111-22-3333"] = Скотт
Значение у сотрудников ["222-33-4444"] = Сэм
Несмотря на то, что данные были вставлены в Hashtable в порядке «Скотт», «Сэм», «Jisun».
http://msdn.microsoft.com/en-us/library/ms379571(v=vs.80).aspx