Hashtable ht = new Hashtable();
ht.Add(1, 1);
ht.Add(2, 1);
ht.Add(3, 1); foreach (DictionaryEntry obj in ht)
{
output.AppendText(obj.Key + ":" + obj.Value + "\n");
}怎么输出
3:1
2:1
1:1怎么倒过来了呀
ht.Add(1, 1);
ht.Add(2, 1);
ht.Add(3, 1); foreach (DictionaryEntry obj in ht)
{
output.AppendText(obj.Key + ":" + obj.Value + "\n");
}怎么输出
3:1
2:1
1:1怎么倒过来了呀
解决方案 »
- 大家都来总结WPF的优缺点
- 内嵌的switch怎么不能实现?
- asp.net实现图片印章程序
- C#中接受用户自定义消息问题
- C# group ,’tiaojian‘ 这两个在项目里面报 语法报错 数据库能查出数据
- 如何用c#启动word2003??
- 急!请教如何在C#中生成数据库的.dll文件
- 一个关于数组for语句的问题,急!
- 打开解决方案时,出现“vs.net无法创建或打开应用程序,问题是因为本地的WEB服务器上没有安装所需的组件。请运行VS.NET安装程序,并添加W
- 多线程读界面的控件的属性会不会有问题?
- Label的 tooltip 显示时间短?如何加长?
- 超难问题,100分,时间间隔问题.
向Hashtable中Add元素时,会调用 key.GetHashcode,取得这个值之后,根据一个算法,得到一个整数值
index,且 0 <= index <= 10,然后Array[index]=value, 这样便实现了Hashtable的原则。至于上面提到的算法,可以简单的理解,比如用key.GetHashcode对11取模运算,实际的要比这复杂些。当你遍历Hashtable的时候,实际是对Array进行0到Array.Length的遍历,所以输出结果的顺序和你Add的顺序不匹配。
没发现什么好的办法能吧Hashtable按你想要顺序输出只有个比较笨的
除了Hashtable以外 在定义一个LIST用来储存Hashtable的KEY序列Hashtable ht = new Hashtable();
List<int> li = new List<int>();
ht.Add(1, 1);
li.Add(1);
ht.Add(2, 1);
li.Add(2);
ht.Add(3, 1);
li.Add(3);li.sort();foreach (var l in li)
{
output.AppendText(l.ToString() + ":" + ht[l].ToString() + "\n");
}以上代码是手敲的 可能有些问题 不过思路是提供给你了
而不是按照插入数据的顺序或者按照内容排序的。
而是
H(key) = [GetHash(key) + 1 + (((GetHash(key) >> 5) + 1) % (hashsize – 1))] % hashsize
或者
Hk(key) = [GetHash(key) + k * (1 + (((GetHash(key) >> 5) + 1) % (hashsize – 1)))] % hashsize