Какой словарь .NET поддерживает операцию «найти ближайший ключ»?

Я конвертирую некоторый код C ++ в C #, и он вызывает std :: map :: lower_bound (k), чтобы найти запись на карте, ключ которой равен или больше k. Тем не менее, я не вижу способа сделать то же самое с .NET SortedDictionary. Я подозреваю, что мог бы реализовать обходной путь, используя SortedList, но, к сожалению, SortedList слишком медленный (O (n) для вставки и удаления ключей). Что я могу сделать?

Примечание: я нашел обходной путь, использующий преимущества моего конкретного сценария ... В частности, мои ключи представляют собой плотную совокупность целых чисел, начиная с чуть более 0, поэтому я использовал List <TValue> в качестве словаря с индексом списка, служащим в качестве ключ и поиск ключа, равного или превышающего k, можно выполнить всего за несколько итераций цикла. Но все равно было бы приятно увидеть ответ на оригинальный вопрос.

Ответы на вопрос(8)

Ваш ответ на вопрос