**
Упорядочение коллекции ключей основана на слоте элемент этого ключа был сохранен. Слот, в котором хранится элемент, зависит от хэш-значения ключа и стратегии разрешения конфликтов.
**
Чтобы получить элемент из Hashtable, вы можете индексировать Hashtable с помощью ключа, так же, как вы бы индекс массива по порядковому значению. Следующая короткая программа C# демонстрирует эту концепцию. Он добавляет несколько элементов в Hashtable, связывая строковый ключ с каждым элементом. Затем к конкретному элементу можно получить доступ с помощью его строкового ключа.
с использованием системы; с использованием System.Collections;
общественный класс HashtableDemo { {} приватный статический Hashtable employees = 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 Еогеаспа (строка ключ в employees.Keys) Console.WriteLine ("Value у сотрудников [ \ "" + key + "\"] = "+ employees [key] .ToString()); Поймите, что порядок, с которым вставлены элементы, и порядок ключей в коллекции ключей не обязательно совпадают. Заказ коллекции ключей основан на слоте, в котором хранился элемент ключа. Слот, в котором хранится элемент, зависит от хэш-значения ключа и стратегии разрешения конфликтов. Если вы запустите указанный выше код, вы увидите, что порядок перечисления элементов не обязательно совпадает с порядком, в котором элементы были добавлены в Hashtable. Выполнения кода выхода:
Value у сотрудников [ "333-44-5555"] = Jisun Значение у сотрудников [ "111-22-3333"] = Скотт Value у сотрудников [ "222-33-4444 "] = Sam Даже если данные были вставлены в Hashtable в порядке« Скотт »,« Сэм »,« Дзисун ».
http://msdn.microsoft.com/en-us/library/ms379571(v=vs.80).aspx
'' SortedDictionary не сортирован по заказу вставки, это отсортированы по ключу используя (по желанию) '' IComparer . –
LukeH
@ LukeH, вы совершенно правы; на секунду увенчался мозгом. Отредактированный ответ, чтобы отразить это. –