4

ログ行を保存するために ConcurrentDictionary を使用しています。それらをユーザーに表示する必要がある場合はToList()、リストを生成するために呼び出します。しかし奇妙なことに、一部のユーザーは最新の行をリストの最初に受け取りますが、論理的には最後にあるはずです。

これは、ConcurrentDictionary が IEnumerate インターフェイスでの永続的な順序を保証していないためですか、それともその理由は何ですか?

4

2 に答える 2

6

いいえConcurrentDictionary(さらにDictionary<T>言えば) リスト内のキーの順序は保証されません。別のデータ型を使用するか、自分で並べ替えを実行する必要があります。非並行コードの場合は を使用しますがSortedDictionary<T>、並行コレクションに類似物があるとは思いません。

于 2013-11-16T15:25:12.017 に答える
2

いいえ。ConcurrentDictionary のリストの順序は保証されていません。行は任意の順序で表示されます。

于 2013-11-16T15:25:20.250 に答える