gpt4 book ai didi

c# - 在Hashtable中打印的顺序?

转载 作者:太空宇宙 更新时间:2023-11-03 18:06:36 25 4
gpt4 key购买 nike

请参阅此处的示例,我按此顺序存储值!但是我得到的输出是不同的!为什么?哈希表以什么顺序存储值?

      {               
Hashtable ht = new Hashtable();
ht.Add("001", "Zara Ali");
ht.Add("002", "Abida Rehman");
ht.Add("003", "Joe Holzner");
ht.Add("004", "Mausam Benazir Nur");
ht.Add("005", "M. Amlan");
ht.Add("006", "M. Arif");
ht.Add("007", "Ritesh Saikia");

ICollection key = ht.Keys;

foreach (string k in key)
{
Console.WriteLine(k + ": " + ht[k]);
}

}


乌普特

006: M. Arif
007: Ritesh Saikia
003: Joe Holzner
002: Abida Rehman
004: Mausam Benazir Nur
001: Zara Ali
005: M. Amlan

最佳答案

哈希表不能保证其中元素的定义顺序。哈希表的实现根据其哈希码及其内部实现将值分成不同的存储桶,这意味着相同的值在不同的计算机,不同的运行或框架的不同版本上可能具有不同的顺序。这是因为哈希表针对按键检索而不是按顺序检索进行了优化。

如果您希望可以同时按键和按顺序访问集合,请使用专门的集合之一。通过使用Hashtable而不是Dictionary<K,V>判断,可能使用的是.NET 1.1,在这种情况下,可以使用SortedList来内部维护顺序。较新版本的.NET具有SortedList<K,V>OrderedDictionary<K,V>,它们的性能特征有所不同:


What's the difference between SortedList and SortedDictionary?

关于c# - 在Hashtable中打印的顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27598127/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com