インデックスによってアクセスされるmy sortedDictionaryの要素の値を設定する必要があります。SortedDictionaryのi番目の値を設定する
I.e.
sortedDictionary.Values[index] = value; // compile error
以下は、インデックスではなくキーでアクセスされるため、間違っていることに注意してください。
sortedDictionary[index] = value; // incorrect
私は以下の解決策を考え出しましたが、直感はそれが遅いと伝えます。私はキーによるアクセスがO(ログN)であり、インデックスによるアクセスがO(1)であると仮定していますが、私は確信していません。
sortedDictionary[sortedDictionary.ElementAt(index).Key] = value;
いくつかの背景:
私は速いの挿入、削除、検索を必要とするので、SortedDictionaryを使用していて、隣の要素にアクセスできるようにします。 (すなわち、次に高いまたは次に低い)。効率は重要である。
ElementAt(インデックス)は、列挙型の拡張メソッドです。SortedDictionaryはIListインターフェイスを実装していないため、O(n)時間に動作します。 – maciejkow
組み込みの.NET構造のどれも私が必要とするもののために働かないようです。私はスキップリストと一緒に行くかもしれない。 – abtree