我有一个reoccuring操作,它由构建一些键/值对组成。 关键是Double的类型。 每次我有1到9对。 然后我需要按键的顺序检索值。
所以我的问题是,实现这组对的最佳方法是什么才能实现所有操作的最佳性能?
提前致谢
答案 0 :(得分:5)
您可以使用SortedList或SortedDictionary。
但由于四舍五入问题,使用double
作为关键似乎很危险
看看你是否可以使用decimal
,它在Equals()
部门更可靠。
答案 1 :(得分:2)
为什么要麻烦排序算法,.Net Framework已经内置了99.9999% * 可行案例的高效算法。
SortedList<double, T>
可能是您最好的选择,除非您有重复的“密钥”,然后只需使用List<Tuple<double,T>>
并在需要结果时拨打Sort
或使用OrderBy
。
除非您一次进行数亿次这类排序操作,否则10项或更少项目根本没有。
*相对夸张。
答案 2 :(得分:0)
这样的事可能
var sorted = from k in yourContainer.Keys
orderby yourContainer[k] ascending
select k;
答案 3 :(得分:0)
double
不是key
的好候选人。
但是如果你想顺便使用它,可以只使用Dictionary<double, ..something..>
或
SortedList<double, ..something..>