为了账号安全,请及时绑定邮箱和手机立即绑定

Hashtable排序的问题

Hashtable排序的问题

弑天下 2018-11-21 05:02:25
我写了这样一个方法</P> <P>Hashtable cList = new Hashtable();<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; foreach (DataRow row in tb.Rows)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cList.Add(row["item_name"].ToString(), row["item_ename"].ToString());<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return cList;</P> <P>现在在Hashtable中的数据不是按添加的顺序</P> <P>我想得到要得到按添加进Hashtable的顺序</P> <P>如:colist.add("aaa",1)
查看完整描述

2 回答

?
温温酱

TA贡献1752条经验 获得超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 (); } } }

查看完整回答
反对 回复 2018-11-22
  • 2 回答
  • 0 关注
  • 268 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信