Скажем, у меня есть следующие коды:
SortedDictionary<int,string> test = new SortedDictionary<int, string> ( );
test.Add ( 1, "one" );
test.Add ( 3, "three" );
test.Add ( 7, "seven" );
test.Add ( 8, "eight" );
int key = GetFirstKeyGreaterThan ( test, 3 ); // expects to get 7
int key2 = GetFirstKeyGreaterThan ( test, 6 ); // expects to get 7
Есть ли простой способ реализовать метод GetFirstKeyGreaterThan? Я знаю, что мы можем использовать метод GetEnumerator и вызывать MoveNext после достижения ключа 3, но это будет операция O(n).
Я не хочу использовать SortedList, потому что мне нужно O (log n) для вставки и удаления ключа.
SortedDictionary
, а код содержитDictionary
. Может не быть решения сделать то, что вы хотите, используя любой из этих двух, но это поможет нам ответить, если вы уточните, какой из них вы имеете в виду. - person MvanGeest   schedule 30.10.2012SortedList<K, V>
илиTreeDictionary<K, V>
из C5. - person nawfal   schedule 11.06.2014