HashTable 能够不排序吗﹖
HT 为 HashTable
我使用 HT.Add(Key, Value) 来添加值对,
当我把它取出来时,
发现Key自动排序了。
能够不让它排序吗﹖
我希望保持原本 Add 的顺序。
如果 HashTable 一定会排序,
那么我不要排序的话得改用哪个组件﹖
------解决方案--------------------哈希表内部按照Hashcode来排序的。我们无法让哈希表排序,可以借ArrayList来用。
ArrayList arr = new ArrayList(hash.Keys);
arr.Sort();
------解决方案--------------------因为Hashtable用了hash算法,所以表里的数据顺序是不定的,最好不要用它来解决这样的问题
建议用数组
------解决方案--------------------arraylist
hashtable
sortedlist
这3个集合对象,功能依次增强,系统开销也依次增大。hashtable 应该是不支持排序的,他有个唯一键值也是为了提高查询速度。
arraylist 是不是合适你用?
------解决方案--------------------.NET 2.0 以上版本,HashTable 已过时,改用 Dictionary 泛型,如果需要排序可用 SortedDictionary 泛型...
------解决方案--------------------对你要保证按你的Add顺序,你最好换用ArrayList,或用List <T> .
------解决方案--------------------构造一个Key-Value结构用List <> 存