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