Перечисление диапазона ImmutableSortedDictionary по ключу - PullRequest
10 голосов
/ 07 ноября 2019

Я читал о C # ImmutableSortedDictionary в System.Collections.Immutable и думал о том, как применить его в моей программе. Мне очень нравятся C ++ lower_bound и upper_bound (см. здесь ), и я скорее ожидал увидеть что-то подобное для поиска диапазона. Тем не менее, подобные методы странно отсутствуют в документации . Я что-то пропустил? Или MS действительно предоставляет отсортированный словарь без эффективного доступа к отсортированным диапазонам? Это не совсем похоже на то, что можно сделать на IEnumerable клавишах, как, скажем, на методе расширения, поэтому я немного озадачен тем, что не вижу чего-то, предоставленного непосредственно коллекцией.

1 Ответ

5 голосов
/ 07 ноября 2019

Вызывает раздражение тот факт, что доступные встроенные коллекции не предлагают полный набор функций (например, SortedDictionary без метода BinarySearch), что вынуждает нас искать сторонние решения(например, C5 библиотека ).

В вашем случае вместо ImmutableSortedDictionary вы, вероятно, могли бы использовать ImmutableSortedSet, встраивая значения в ключи ииспользуя соответствующий компаратор. По крайней мере, API этого класса содержит свойства Min и Max.

...