1

Я использую ConcurrentDictionary для хранения строк журнала, и когда мне нужно отобразить их для пользователя, я вызываю ToList() для создания списка. Но странно, что некоторые пользователи получают самые последние строки сначала в списке, в то время как они должны логически быть последними.Гарантирован порядок списка в ConcurrentDictionary?

Это потому, что ConcurrentDictionary не гарантирует постоянный порядок в интерфейсе IEnumerate или что может быть причиной?

+0

Сортировка по значению DateTime при отображении данных. – usr

+0

@usr Я планировал это сделать, но это своего рода обходной путь. Id нравится понимать, почему это происходит в первую очередь. – Muis

ответ

2

No ConcurrentDictionaryDictionary<T>, если на то пошло) не гарантирует заказ ключей в списке. Вам придется использовать другой тип данных или выполнить сортировку самостоятельно. Для несовпадающего кода вы должны использовать SortedDictionary<T>, но я не верю, что в параллельных коллекциях есть аналог.

0

Нет. Порядок заказа ConcurrentDictionary не гарантируется, линии могут выдаваться в любом порядке.