Сортировка хэш-таблицы по основам ключа? - PullRequest
1 голос
/ 16 февраля 2012

Как мне отсортировать хеш-таблицу на основе ключей в c #.

Например.

Hastable hst  = new Hashtable ();
hst.Add("Key1","keyValue");
hst.Add("Key2","keyValue");
hst.Add("Key3","keyValue");

Ответы [ 2 ]

3 голосов
/ 16 февраля 2012

Если вам нужна отсортированная строго типизированная хеш-таблица, вы можете использовать SortedDictionary<TKey, TValue>

var hst  = new SortedDictionary<string, string>();
hst.Add("Key1","keyValue");
hst.Add("Key2","keyValue");
hst.Add("Key3","keyValue");

Если вы хотите использовать хеш-таблицу:

IEnumerable<DictionaryEntry> sortedEntries = hst.OrderBy(entry => entry.Key);
1 голос
/ 16 февраля 2012

Посмотрите на этот вопрос, ответ там велик. Можно ли отсортировать HashTable?

Хеш-таблицы работают путем сопоставления ключей со значениями. В этом отображении подразумевается, что ключи не сортируются и не хранятся в каком-либо определенном порядке. Тем не менее, вы можете взглянуть на SortedDictionary<K,V>.

Другой вариант - создать хеш-таблицу, как вы уже делаете, а затем просто создать отсортированный набор из ключей. Вы можете перебирать этот отсортированный набор ключей, выбирая при необходимости соответствующее значение из хеш-таблицы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...