web-dev-qa-db-ja.com

基本的なSortedList <T>がないのはなぜですか?

私の知る限り、自分自身をソートする機能を備えたList<T>を取得する方法はありません。要素を追加する場合は、データ構造を適切な位置に挿入します(関連するIComparer<T>に基づいて)。 SortedSet<T>と同じロジックの何かを探しています。

私はSystem.Collections.Generic.SortedList<TKey, TValue>を知っていますが、それはDictionaryの一種です。

私は本当に必要ありません(実装するのはそれほど難しくありません)。そのようなデータ構造が存在するかどうか疑問に思っています。存在しない場合は、なぜですか?

ソース:

IList インターフェイスを壊します。

インデックスを使用してリストから要素を取得します。要素のインデックスが変化し続けると、これが役に立たない場合、Insertも役に立たなくなります。

Item [Int32]-指定されたインデックスにある要素を取得または設定します。

Insert(Int32、T)-IList<T>の指定したインデックスにアイテムを挿入します。

したがって、SortedList<T>実装がない理由は、他のADTがより合理的かつ効率的な方法で機能を処理できるためです。

19
Louis Ricci