我正在阅读ImmutableSortedDictionary
中的C#的System.Collections.Immutable
,并思考如何在程序中应用它。我非常喜欢C++的lower_bound
和upper_bound
(请参阅here),并且我很希望看到用于范围查找的某种东西。但是,类似的方法seem to be strangely absent from the documentation。我想念什么吗?还是MS真正提供了分类字典,而没有有效访问分类范围?这似乎并不像可以对扩展方法那样对键的IEnumerable
进行的操作,因此我有点困惑,因为我没有看到集合直接提供的某些功能。
最佳答案
令人烦恼的是,可用的内置集合没有提供完整的功能集(例如缺少SortedDictionary
方法的 BinarySearch
),从而迫使我们搜索第三方解决方案(例如C5 library)。
在您的情况下,可以使用 ImmutableSortedDictionary
代替ImmutableSortedSet
,将值嵌入键中并使用适当的比较器。至少此类的API包含属性Min
和Max
。