c#命令保留数据结构

Ore*_*zor 28 c# data-structures

奇怪的是,MSDN没有关于数据结构的保持属性的信息.所以我一直在假设:

  • Hashtable和Hashset不保留插入顺序(也就是"散列"中有赠品)
  • 字典和列表DO保留插入顺序.

从这个我推断,如果我有一个Dictionary<double, double> foo定义曲线,foo.Keys.ToList()和foo.Values.ToList()将给我一个有序的列表,该曲线的范围和域没有搞乱它?

LBu*_*kin 39

您不应期望常规中的键或值Dictionary<TKey,TValue>可以按任何顺序维护.在SortedDictionary<TKey,TValue>键和值中按键的值按顺序维护 - 这与插入顺序不同.

.NET框架中唯一保留插入顺序的内置字典是System.Collections.Specialized.OrderedDictionary.不幸的是,这个类不是通用的 - 但是,编写一个通用的包装器并不是非常困难.请记住,在处理值类型(如intdouble)时,它将导致键/值的装箱(通用词典不会对值类型施加装箱).

  • 这是我最初假设的,但随后一些谷歌搜索似乎建议词典保持插入顺序.它是OrderedDictionary.谢谢! (2认同)