我使用ConcurrentDictionary来存储日志行,当我需要将它们显示给用户时,我调用ToList()
来生成列表。但奇怪的是,有些用户在列表中首先收到最新的行,而逻辑上应该是最后一行。
这是因为ConcurrentDictionary不能保证IEnumerate接口上的持久顺序,或者可能是什么原因?
答案 0 :(得分:4)
否ConcurrentDictionary
(和Dictionary<T>
相关)并不保证列表中键的排序。您必须使用不同的数据类型或自己执行排序。对于非并发代码,您可以使用SortedDictionary<T>
,但我不认为并发集合中存在类似物。
答案 1 :(得分:2)
没有。不保证ConcurrentDictionary的列表顺序,行可以按任何顺序出现。