Hashtable排序的问题
我写了这样一个方法
Hashtable cList = new Hashtable();
foreach (DataRow row in tb.Rows)
{
cList.Add(row["item_name"].ToString(), row["item_ename"].ToString());
}
return cList;
现在在Hashtable中的数据不是按添加的顺序
我想得到要得到按添加进Hashtable的顺序
如:colist.add("aaa",1);
colist.add("sfsf",1);
.........
在HashTable存的也是这个顺序,怎么实现
------解决方案-------------------- hashtable没有顺序的,也没有next和previous.看来你没明白hashtable
------解决方案-------------------- 没法实现,你的想法就是和哈希的定义相悖的。
建议直接使用 List, 再定义索引吧
------解决方案-------------------- 我知道arraylist排序要继承IComparer
不知道Hashtable 排序要不要继承IComparer
试试
------解决方案-------------------- HashTable是散列表,所谓散列即没有顺序可言,不过你可以尝试用foreach,但不推荐,建议还是使用List<T>泛型
C# code
Hashtable ht = new Hashtable();
for (int i = 0; i < 100; i++)
ht.Add(i, i);
foreach (int i in ht.Keys)//这样是按加入顺序的倒序输出
Console.WriteLine(ht[i]);
------解决方案-------------------- 你用arraylist
------解决方案-------------------- 不行,hashtable没顺序 lz可以用arraylist
------解决方案-------------------- 把hashtable换成 SortedList 就直接插入排序了.
------解决方案-------------------- 探讨 把hashtable换成 SortedList 就直接插入排序了.