日期:2014-05-18  浏览次数:20811 次

请问如何向Hashtable插入一个值?
Hashtable ht = new Hashtable();
ht.Add(0, 0);
ht.Add(2, 2);
ht.Add(3, 3);

我想实现类似AddAt(int index, object key, object value)的方法,在0和2之间插入一个值。
我现在想到的方法就是在INDEX处截断,前面clone(),后面重新Add.但觉得效率低。
有没有更好的方法?

------解决方案--------------------
你的功能可以使用sortlist来实现
但如果你使用的数据较多,那么sorklist使用的时间不断上升。而hasttable却不会,hasttable的查询速度是恒定的
------解决方案--------------------
Hashtable是无序的~~~
你的Value如果不是统一的
你可以借助ArrayList等先排序
然后重新添加~~~
------解决方案--------------------
hashtable本身是通过key.GetHashCode()方法来排序的,所以无论你怎么Add(key,value), 它的keys都是一个IEnumeration,
你一定要排序的话,不要用Hashtable.