c# - .NET SortedDictionary 但按值排序

标签 c# .net collections dictionary sorteddictionary

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

我的第一个想法是简单地在我的代码中切换键和值。这几乎可以工作。通过这样做,我可以在大约 1.2 微秒的时间内添加和删除元素。

但是键在 SortedDictionary 中必须是唯一的,这意味着我的逆向字典中的值必须是唯一的。在某些情况下,它们可能并非如此。

.NET 库中是否有任何适合我的想法?

最佳答案

您可以像这样按值对 SortedDictionary 进行排序:

yourList.Sort(
    delegate(KeyValuePair<int, double> val1,
    KeyValuePair<int, double> val2)
    {
        return val1.Value.CompareTo(val2.Value);
    }
);

关于c# - .NET SortedDictionary 但按值排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2619051/

相关文章:

c# - 异步实例化类

java - Java中的两种方式集合

c# - @ 后有 2 个字符的正则表达式电子邮件

c# - 节点在winform TreeView中被部分截断

.net - 如何将实体列表添加到 DbSet

c# - ASP.NET MVC 2.0 : Simple Model Binding not working/binding as it should

java - 如何更改 LIST 的所有对象中特定属性的值

actionscript-3 - AS3 中的重载 [] 运算符

c# - Html.EditorFor 用于带逗号的小数字段

c# - 如何停止尝试更改 entitykey 值的 dbentityentry.currentvalues.setvalues