gpt4 book ai didi

c# - 排序 ConcurrentDictionary 有意义吗?

转载 作者:行者123 更新时间:2023-11-30 20:00:45 26 4
gpt4 key购买 nike

起初我的想法是“这是一个基于散列的数据类型,然后它是未排序的”。

然后因为我要使用它,所以我深入研究了这个问题,发现这个类实现了 IEnumerablethis post确认可以迭代此类数据。

所以,我的问题是:如果我在 ConcurrentDictionary 上使用 foreach,这是我读取元素的顺序?

那么,作为第二个问题,我想知道它的接口(interface)继承的排序方法是否有任何用途。如果我通过 ConcurrentDictionary 调用排序方法,新顺序将持续存在(例如对于传入的 foreach)?

希望我已经说清楚了

最佳答案

当前的实现对元素的顺序没有任何 promise 。 future 的实现可以轻松更改元素的枚举顺序。

因此,您的代码不应依赖于该顺序。

来自Dictionary<TKey, TValue> msdn docs :

The order in which the items are returned is undefined.

(我找不到关于 ConcurrentDictionary 的任何引用资料,但同样的原则适用。)

当您提到“其接口(interface)继承的排序方法”时,您指的是 LINQ 扩展吗?喜欢OrderBy ?如果是这样,这些扩展只是功能性的并且总是返回一个新的集合。因此,要回答您的问题“新秩序会持续存在吗?”:不,不会。但是,您可以像这样使用它:

foreach(KeyValuePair<T1, T2> kv in dictionary.OrderBy(...))
{

}

关于c# - 排序 ConcurrentDictionary 有意义吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20289363/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com