是否保证ConcurrentDictionary的列表顺序?

时间:2013-11-16 15:21:31

标签: .net list concurrency concurrentdictionary blockingcollection

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

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

2 个答案:

答案 0 :(得分:4)

ConcurrentDictionary(和Dictionary<T>相关)并不保证列表中键的排序。您必须使用不同的数据类型或自己执行排序。对于非并发代码,您可以使用SortedDictionary<T>,但我不认为并发集合中存在类似物。

答案 1 :(得分:2)

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