【发布时间】:2011-02-06 19:46:08
【问题描述】:
我需要一个类似于SortedDictionary<int, double> 的数据结构,但它是根据值而不是键进行排序的。当字典中有大约 3000 个项目时,我需要大约 1-2 微秒来添加和删除项目。
我的第一个想法是简单地在我的代码中切换键和值。这几乎可以工作。通过这样做,我可以在测试中在大约 1.2 微秒内添加和删除元素。
但键在 SortedDictionary 中必须是唯一的,这意味着我的逆字典中的值必须是唯一的。在某些情况下,它们可能不是。
.NET 库中的任何想法对我有用吗?
【问题讨论】:
-
我假设 SortedList 不符合那个性能?
-
您能解释一下您的域中的键和值代表什么吗?
-
@Simon 我认为 SortedList 也是按键排序的。 msdn.microsoft.com/en-us/library/…
-
@John 整数代表股票标识符。双倍代表我们在每只股票中的当前风险金额(以美元计)。我需要能够随时按风险降序或风险升序遍历这些名称。并且有一些时间关键的代码会更新它,因此它确实需要能够在 1-2 微秒内完成操作。
标签: c# .net collections dictionary sorteddictionary