c# - ImmutableSortedDictionary 按键枚举范围

标签 c# .net algorithm immutability immutable-collections

我在 System.Collections.Immutable 中阅读了有关 C# 的 ImmutableSortedDictionary 的内容,并思考如何将其应用到我的程序中。我非常喜欢 C++ 的 lower_boundupper_bound (请参阅 here ),并且我相当期待看到类似的范围查找功能。然而,类似的方法seem to be strangely absent from the documentation 。我错过了什么吗?或者,MS 是否真正提供了排序字典,但无法有效访问排序范围?这看起来并不完全像是人们可以在键的 IEnumerable 上做的事情,就像扩展方法一样,所以我有点困惑,我没有看到集合直接提供的东西。

最佳答案

令人恼火的是,可用的内置集合没有提供全套功能(例如 SortedDictionary 缺少 BinarySearch 方法),迫使我们搜索第三方解决方案(就像 C5 library )。

在您的情况下,您可能可以使用 ImmutableSortedSet 而不是 ImmutableSortedDictionary ,将值嵌入键中并使用适当的比较器。此类的 API 至少包含属性 MinMax

关于c# - ImmutableSortedDictionary 按键枚举范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58742514/

相关文章:

algorithm - 有没有时间复杂度O(lg * n)(迭代对数函数)的算法?

c# - 试图了解如何在 UI 线程上调用它

c# - 调用 Command.Execute 是错误的还是如何以更适合的方式重写

c# - C# 中日期格式的转换

.net - WinForms - 试图制作一个背景最大化的表格,它留在后台并且不响应

c# - Scrollviewer 中的 UWP Canvas 像鼠标输入一样处理笔输入

c# - 快速 I/O 检查目录是否包含文件

c# - 这在技术上是 "Hello World"的 O(1) 算法吗?

c# - 使用 C# 将 double 转换为字符串从 Excel 读取值

algorithm - 如果可能,程序员应该总是使用 < 而不是 <= 吗?