c# - 在 SortedDictionary 中查找最接近的值

标签 c# collections dictionary sorteddictionary

我有一个 SortedDictionary

 SortedDictionary<int, CPUOptimizationObject> myDict;

现在我想找到 X 上方的第一个值。 我可以做这样的事情

foreach (var iKey in MyDict.Keys)
{
   if (iKey >= thresholdKey)
   {
       foundKey = iKey;
       break;
   }
}

但这在性能方面并不是很好。
有更好的建议吗?
(在集合中是否有类似 Binary search for SortedDictionary 的方法?)

最佳答案

虽然从理论上讲,找到大于给定值的最小项是可以在二叉搜索树上高效执行的操作(SortedDictionary 的实现方式)SortedDictionary 不会公开让您对该数据类型执行此类搜索的方法。

您需要使用二叉搜索树的不同实现,以便有效地执行此类搜索,同时仍然使用相同类型的数据结构。没有合适的 .NET 类型;您将需要使用第 3 方实现(其中有很多)。

关于c# - 在 SortedDictionary 中查找最接近的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13131240/

相关文章:

c# - ASP.NET 预编译期间出现类型解析错误

javascript - 添加 MasterPage 时 ScriptManager.RegisterClientScriptBlock 不再工作

android - 了解 Android 垃圾回收

collections - Rust 中 Kotlin 的 `reduce` 操作的替代方案是什么?

python - 通过键数组访问字典,或将键初始化为子字典

python - 将文本中的键值对解析为字典

dictionary - Logo 语言中的字典数据结构(键/值存储)

c# - 在 asp.net 类文件中执行 sql 命令时出现 fatal error

c# - 将多个 SQL 文件合并为一个 SQL 文件

Java 8 流并从调用 boolean 方法设置属性