.NET SortedDictionary但按值排序

Mic*_*lli 6 .net c# collections dictionary sorteddictionary

我需要一个像a一样的数据结构,SortedDictionary<int, double>但是根据值而不是键来排序.当我们在字典中有大约3000个项目时,我需要大约1-2微秒来添加和删除项目.

我的第一个想法是简单地在我的代码中切换键和值.这几乎是有效的.通过这样做,我可以在测试中添加和删除元素大约1.2微秒.

但是键必须在SortedDictionary中是唯一的,这意味着我的逆字典中的值必须是唯一的.在某些情况下,他们可能不会.

.NET库中的某些想法已经对我有用吗?

Aar*_*ght 0

PowerCollections库有一个名为的类,它基本上类似于 a但允许重复。当您查找键时,您会得到一个可枚举的值而不是单个值。OrderedMultiDictionary<TKey, TValue>SortedDictionary<TKey, TValue>

该库是免费的,您应该能够对该类执行您想要的操作 - 将值存储为键。