Мне нужно установить значение элемента в моем отсортированномDictionary, к которому обращается индекс.Установка i-го значения SortedDictionary
I.e.
sortedDictionary.Values[index] = value; // compile error
Обратите внимание, что следующее неверно, поскольку к нему обращаются по ключу, а не по индексу.
sortedDictionary[index] = value; // incorrect
Я придумал следующее решение, но интуиция говорит мне, что это медленно. Я предполагаю, что доступ по ключу равен O (log N), а доступ по индексу - O (1), но я не уверен.
sortedDictionary[sortedDictionary.ElementAt(index).Key] = value;
Некоторые фона:
Я использую SortedDictionary, потому что нужны быстрые вставки, удаления, поиски, и, чтобы иметь возможность доступа к соседним элементам. (т. е. следующий самый высокий или следующий минимум). Эффективность важна.
ElementAt (index) - метод расширения для перечислений - он работает в O (n) времени, так как SortedDictionary не реализует интерфейс IList. – maciejkow
Кажется, что ни одна из встроенных .NET-структур не работает для меня. Я могу пойти с Пропустить Списки. – abtree