【发布时间】:2012-03-07 15:14:35
【问题描述】:
如何在 c# 中根据键对哈希表进行排序。
例如。
Hastable hst = new Hashtable ();
hst.Add("Key1","keyValue");
hst.Add("Key2","keyValue");
hst.Add("Key3","keyValue");
【问题讨论】:
-
排序的概念对于哈希表几乎没有任何意义。
如何在 c# 中根据键对哈希表进行排序。
例如。
Hastable hst = new Hashtable ();
hst.Add("Key1","keyValue");
hst.Add("Key2","keyValue");
hst.Add("Key3","keyValue");
【问题讨论】:
如果需要排序的强类型哈希表,可以使用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);
【讨论】:
看看这个问题,那里的答案很棒。 Is it possible to sort a HashTable?
哈希表通过将键映射到值来工作。此映射中隐含的概念是键未按任何特定顺序排序或存储。
不过,你可以看看SortedDictionary<K,V>.
另一种选择是像您已经在做的那样构造哈希表,然后简单地从键构造一个排序集。您可以遍历该排序键集,根据需要从哈希表中获取相应的值。
【讨论】: