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

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

有帮助吗?

解决方案

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

其他提示

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top