日期:2014-05-18  浏览次数:21136 次

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 就直接插入排序了.