4

我正在使用 ConcurrentDictionary 来存储日志行,当我需要向用户显示它们时,我调用ToList()它来生成一个列表。但奇怪的是,一些用户在列表中最先收到最近的行,而从逻辑上讲,他们应该排在最后。

这是因为 ConcurrentDictionary 不保证 IEnumerate 接口上的持久顺序,还是可能是什么原因?

4

2 回答 2

6

ConcurrentDictionaryDictionary<T>就此而言)不保证列表中键的顺序。您必须使用不同的数据类型或自己执行排序。对于您将使用的非并发代码SortedDictionary<T>,但我不相信并发集合中有类似物。

于 2013-11-16T15:25:12.017 回答
2

不可以。 ConcurrentDictionary 的列表顺序不能保证,行可以以任何顺序出现。

于 2013-11-16T15:25:20.250 回答