Hashtable到底是否可以自动按照键值排序?

pcfirebird 2008-07-20 09:02:00
问个Hashtable的问题,很多网上资料说Hashtable是不能根据Key值自动排序的,但是我在.netFramework2.0下测试的结果却是,遍历输出的时候却是根据Key值排序输出的,难道是可以根据键值排序存储的?

-----------------------------------------------
Code Example:

string myString = "1,AAA;2,BBB;3,CCC";
string[] myStringArray = myString.Split(';');
string[] mySubStringArray;
Hashtable ht = new Hashtable();
foreach(string str in myStringArray)
{
mySubStringArray = str.Split(',');
ht.Add(mySubStringArray[0], mySubStringArray[1]);
}

//遍历输出,发现是按照键值ASC顺序输出的
Console.WriteLine("Traverse Method 1:");
foreach(DictionaryEntry de in ht)
{
Console.Write("Key: "+de.Key);
Console.WriteLine(";Value: "+de.Value);
}

Console.WriteLine("\nTraverse Method 2:");
System.Collections.IDictionaryEnumerator enumerator=ht.GetEnumerator();
while(enumerator.MoveNext())
{
Console.Write("Key: "+enumerator.Key);
Console.WriteLine(";Value: "+enumerator.Value);
}
...全文
310 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
pcfirebird 2008-07-21
  • 打赏
  • 举报
回复
确实是如此

换了一组数据测试,果然没有按照顺序输出,感谢ls
bindsang 2008-07-20
  • 打赏
  • 举报
回复
楼主的数据量太少了,不足以说明问题

HashTable是不保证按顺序输出,这只是一种巧合罢了

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧