私はUDTが、私は非常に多くの場合、サイズによって、時間によって、この辞書をソートし、する必要がパフォーマンス
// simplified structure
class UDT
{
public DateTime datetime;
public double size;
};
として定義されている辞書(文字列、UDT)を持っています。私は今のようなことをしています -
var result = dict.OrderBy(x => x.Value.datetime).ThenBy(x => x.Value.size);
foreach (KeyValuePair<string, UDT> val in result
{
}
この辞書のサイズは非常に大きく、アプリケーションのボトルネックのほとんどはここにあるようです。項目が辞書に追加されるとき、またはより効率的に並べ替えるときに、辞書をソートしたままにする方法はありますか?
辞書の値でソートする必要がありますか?それは非常に非効率的です。コレクションを再ソートする頻度はどのくらいですか?私は、SortedDictionaryを使用して、キー内のすべての値(カスタム比較関数を使用)を使用するか、リストで使用するクラスにすべての値を入れ、必要に応じて(カスタム比較関数を使用して)並べ替えます。 –
Joe