2 回答
TA贡献1869条经验 获得超4个赞
产生这个结果的原因大家都知道,Hashtable内部的排序机制使然.我们可以用ArrayList重写Hashtable.因为ArrayList是不会排序的。代码如下: namespace NoSortHashtable { public class NoSortHashtable : Hashtable { private ArrayList keys = new ArrayList(); public NoSortHashtable() { } public override void Add(object key, object value) { base.Add (key, value); keys.Add (key); } public override ICollection Keys { get { return keys; } } public override void Clear() { base.Clear (); keys.Clear (); } public override void Remove(object key) { base.Remove (key); keys.Remove (key); } public override IDictionaryEnumerator GetEnumerator() { return base.GetEnumerator (); } } }
TA贡献1880条经验 获得超4个赞
Hashtable 确实不能排序,你每次取的时候,里面的元素顺序都是不同的。 你可以创建Hashtable 的时候,同时创建一个数组或者一个列表ArrayList,List来存放Hashtable 里的key.每次取的时候先从数组或者列表中取出key值,然后从Hashtable 中取出相应的value值。 还需要我写出代码么?
- 2 回答
- 0 关注
- 637 浏览
添加回答
举报