2 回答

TA貢獻1869條經(jīng)驗 獲得超4個贊
產(chǎn)生這個結(jié)果的原因大家都知道,Hashtable內(nèi)部的排序機制使然.我們可以用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條經(jīng)驗 獲得超4個贊
Hashtable 確實不能排序,你每次取的時候,里面的元素順序都是不同的。 你可以創(chuàng)建Hashtable 的時候,同時創(chuàng)建一個數(shù)組或者一個列表ArrayList,List來存放Hashtable 里的key.每次取的時候先從數(shù)組或者列表中取出key值,然后從Hashtable 中取出相應的value值。 還需要我寫出代碼么?
- 2 回答
- 0 關注
- 651 瀏覽
添加回答
舉報