Is the list order of a ConcurrentDictionary guaran

2020-04-11 18:17发布

I am using a ConcurrentDictionary to store log-lines, and when I need to display them to the user I call ToList() to generate a list. But the weird thing is that some users receive the most recent lines first in the list, while they should logically be last.

Is this because ConcurrentDictionary doesnt guarantee a persistent order on the IEnumerate interface, or what can be the reason?

2条回答
倾城 Initia
2楼-- · 2020-04-11 19:11

No. The list order of ConcurrentDictionary is NOT guaranteed, lines can come out in any order.

查看更多
姐就是有狂的资本
3楼-- · 2020-04-11 19:22

No ConcurrentDictionary (and Dictionary<T> for that matter) does not guarantee the ordering of the keys in the list. You'll have to use a different data type or perform the sorting yourself. For non-concurrent code you would use SortedDictionary<T>, but I don't believe there is an analogue in the concurrent collections.

查看更多
登录 后发表回答