我正在使用 ConcurrentDictionary 来存储日志行,当我需要向用户显示它们时,我调用ToList()
它来生成一个列表。但奇怪的是,一些用户在列表中最先收到最近的行,而从逻辑上讲,他们应该排在最后。
这是因为 ConcurrentDictionary 不保证 IEnumerate 接口上的持久顺序,还是可能是什么原因?
我正在使用 ConcurrentDictionary 来存储日志行,当我需要向用户显示它们时,我调用ToList()
它来生成一个列表。但奇怪的是,一些用户在列表中最先收到最近的行,而从逻辑上讲,他们应该排在最后。
这是因为 ConcurrentDictionary 不保证 IEnumerate 接口上的持久顺序,还是可能是什么原因?
否ConcurrentDictionary
(Dictionary<T>
就此而言)不保证列表中键的顺序。您必须使用不同的数据类型或自己执行排序。对于您将使用的非并发代码SortedDictionary<T>
,但我不相信并发集合中有类似物。
不可以。 ConcurrentDictionary 的列表顺序不能保证,行可以以任何顺序出现。