.NET SortedDictionary但按值排序
我需要一个像SortedDictionary
一样的数据结构,但是它是根据值而不是键来排序的。 当我们在字典中有大约3000个项目时,我需要大约1-2微秒来添加和删除项目。
我的第一个想法是简单地在我的代码中切换键和值。 这几乎是有效的。 通过这样做,我可以在测试中添加和删除大约1.2微秒的元素。
但是密钥必须在SortedDictionary中是唯一的,这意味着我的逆字典中的值必须是唯一的。 在某些情况下,他们可能不会。
.NET库中的某些想法已经对我有用吗?
PowerCollections库有一个名为OrderedMultiDictionary
,它基本上类似于SortedDictionary
但允许重复。 查找键时,您将获得可枚举而不是单个值。
该库是免费的,你应该能够完成你想要的那个类 – 将值存储为键。
您可以按如下方式对SortedDictionary进行排序:
yourList.Sort( delegate(KeyValuePair val1, KeyValuePair val2) { return val1.Value.CompareTo(val2.Value); } );
- 捕获非特定exception(例如System.Exception)是不好的做法? 为什么?
- 如何在WIndows表单应用中应用Border to combobox?
- 如何将ac#console项目更改为Windows窗体应用程序项目?
- 通过.net中的SqlTransaction禁用对表的读/写?
- .Net Core 2.1 – 无法访问已处置的对象。对象名称:’IServiceProvider’
- SqlCeConnection中的访问冲突exception处理
- 在XmlSerializer生成的对象中维护xml层次结构(即父子)信息
- 如何将Excel工作表添加到控制台应用程序
- exception信息:System.Reflection.TargetInvocationException