我在System.Collections.Immutable
中阅读了关于C#的ImmutableSortedDictionary
的内容,并思考如何将其应用于我的程序中。我非常喜欢C++的lower_bound
和upper_bound
(请参阅此处(,并且我希望看到类似的范围查找。然而,奇怪的是,文档中似乎没有类似的方法。我是不是错过了什么?或者MS真的提供了一个排序字典,而没有对排序范围的有效访问?这似乎不像是一个可以在键的IEnumerable
上做的事情,比如扩展方法,所以我有点困惑,因为我没有看到集合直接提供的东西。
令人恼火的是,可用的内置集合没有提供全套功能(如缺少BinarySearch
方法的SortedDictionary
(,迫使我们搜索第三方解决方案(如C5库(。
在您的情况下,可以使用ImmutableSortedSet
,而不是ImmutableSortedDictionary
,将值嵌入键中并使用适当的比较器。至少这个类的API包含属性Min
和Max
。