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.但觉得效率低。
有没有更好的方法?

解决方案 »

  1.   

    呵呵,最初我想用泛型,但是又比较倾向于Hashtable的直接及object类型的键。
    其实我是想维护一个二维的表,可以通过字串的键名和int的索引来访问值,同时具备Add及AddAt等泛型的方法。
      

  2.   

    哈希表是键和值,不明白你为什么要排好
      你在取用的时候把键设置为类似index的东西不知道行不
      

  3.   

    你的功能可以使用sortlist来实现
    但如果你使用的数据较多,那么sorklist使用的时间不断上升。而hasttable却不会,hasttable的查询速度是恒定的
      

  4.   

    Hashtable是无序的~~~
    你的Value如果不是统一的
    你可以借助ArrayList等先排序
    然后重新添加~~~
      

  5.   

    hashtable本身是通过key.GetHashCode()方法来排序的,所以无论你怎么Add(key,value), 它的keys都是一个IEnumeration,
    你一定要排序的话,不要用Hashtable.