从.NET 4.0中的ConcurrentDictionary <k,v>获取字典<k,v> </k,v> </k,v>

时间:2010-10-19 22:29:42

标签: collections concurrency dictionary .net-4.0 parallel-processing

我正在并行化一些后端代码并尝试不破坏接口。我们有几个返回Dictionary的方法,在内部,我使用ConcurrentDictionary来执行并行操作。

从这些中返回字典的最佳方法是什么?

这感觉太简单了:

return myConcurrentDictionary.ToDictionary(kvp => kvp.Key, kvp => kvp.Value);

我觉得我错过了什么。

2 个答案:

答案 0 :(得分:4)

Constructing the Dictionary<K,V> directly 稍微比调用ToDictionary更有效率。构造函数会将目标字典预分配到正确的大小,并且不需要在进行中随时调整大小。

return new Dictionary<K,V>(myConcurrentDictionary);

如果您的ConcurrentDictionary<K,V>使用自定义IEqualityComparer<K>,那么您可能希望pass that into the constructor too

答案 1 :(得分:1)

不。这完全没问题。 .NET序列就是这样的好。 :d