永发信息网

c#中hashtable问题

答案:2  悬赏:20  手机版
解决时间 2021-12-25 16:55
  • 提问者网友:听门外雪花风
  • 2021-12-25 11:30
class Program
{
static void Main(string[] args)
{
Hashtable hs = new Hashtable();
hs.Add("001", "str1");
hs.Add("002", "str2");
hs.Add("003", "str3");
Console.WriteLine("code string");
foreach (string s in hs.Keys)
{
Console.WriteLine(s + " " + hs[s]);
}
Console.ReadLine();
}
}

为什么输出是先str3.再str1.再str2.
是不是跟Hashtable的结构有关系?
谢谢!
最佳答案
  • 五星知识达人网友:酒安江南
  • 2022-01-22 06:28
哈希表不是顺序表,输出不一定有序。
对哈希表进行排序在这里的定义是对key/value键值对中的key按一定规则重新排列,但是实际上这个定义是不能实现的,因为我们无法直接在Hashtable进行对key进行重新排列,如果需要Hashtable提供某种规则的输出,可以采用一种变通的做法:
ArrayList akeys=new ArrayList(ht.Keys); //别忘了导入System.Collections
akeys.Sort(); //按字母顺序进行排序
foreach(string skey in akeys)
{
Console.Write(skey + ":");
Console.WriteLine(ht[skey]);//排序后输出
}
全部回答
  • 1楼网友:等灯
  • 2022-01-22 06:54
c#中哈希表中元素可以 add remove clear 也可以重置,就像 hashtalbe[key] = value 想实现java 的hashmap,就写一段判断喽: f (table.containskey(key)) { table[key] = value; } else { table.add(key, value); } 还有注意:哈希表中存进去是都是先转换为 object 的
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯