次のように値で ConcurrentDictionary を並べ替えることができます。
static ConcurrentDictionary<string, Proxy> Proxies =
new ConcurrentDictionary<string, Proxy>();
Proxies.OrderBy(p => p.Value.Speed);
並べ替えられたアイテムの結果リストを受け取るだけでなく、辞書自体を効果的に並べ替えて、並べ替えられた新しいリストを辞書として設定したいことを除けば、これは素晴らしいことです。
私はこのようなことをしようとしましたが、運がありませんでした - 辞書はまだ順不同です:
Proxies = new ConcurrentDictionary<string,Proxy>(
Proxies.OrderBy(p => p.Value.Speed));
それをしても辞書には影響がないようです。また、OrderBy の結果を新しい var にキャストしてみましたが、デリゲートに影響を与える可能性はあるものの、まだうまくいかない可能性があると考えています。
この ConcurrentDictionary を並べ替えてから、辞書を OrderBy から並べ替えられた結果に強制するにはどうすればよいですか?