これは、「 SortedListとSortedDictionaryの違いは何ですか?」というこの質問と重複しているように見える場合があります。残念ながら、答えはMSDNのドキュメントを引用するだけであり(パフォーマンスとメモリの使用に違いがあることを明確に述べています)、実際には質問に答えていません.
実際(したがって、この質問は同じ回答を得られません)、MSDN によると:
ジェネリック クラスは、O(log n) 検索を行う二分探索木です。
SortedList<TKey, TValue>
ここで、n はディクショナリ内の要素の数です。この点では、SortedDictionary<TKey, TValue>
ジェネリック クラスに似ています。2 つのクラスのオブジェクト モデルは類似しており、どちらも O(log n) の取得が可能です。2 つのクラスの違いは、メモリの使用と挿入と削除の速度です。
SortedList<TKey, TValue>
は より少ないメモリを使用しますSortedDictionary<TKey, TValue>
。
SortedDictionary<TKey, TValue>
の O(n) とは対照的に、O(log n) は、並べ替えられていないデータの挿入および削除操作が高速ですSortedList<TKey, TValue>
。リストが並べ替えられたデータから一度に入力される場合、
SortedList<TKey, TValue>
は よりも高速ですSortedDictionary<TKey, TValue>
。
したがって、並べ替えられていないデータに対してより高速な挿入および削除操作が必要でない限り、明らかにこれがSortedList<TKey, TValue>
より良い選択であることを示しています。
上記の情報を考えると、SortedDictionary<TKey, TValue>
? パフォーマンス情報に基づいて、実際にはまったく必要がないことを意味しSortedDictionary<TKey, TValue>
ます。