获取字典来自 ConcurrentDictionary在.NET 4.0中

发布于 2024-09-28 08:53:02 字数 261 浏览 4 评论 0原文

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

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

这感觉太简单了:

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

我觉得我错过了一些东西。

I'm parallelizing some back-end code and trying not to break interfaces. We have several methods that return Dictionary and internally, I'm using ConcurrentDictionary to perform Parallel operations on.

What's the best way to return Dictionary from these?

This feels almost too simple:

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

I feel like I'm missing something.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

梨涡 2024-10-05 08:53:02

直接构造字典将比调用 ToDictionary稍微更高效。构造函数会将目标字典预先分配到正确的大小,并且不需要在运行过程中动态调整大小。

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

如果您的 ConcurrentDictionary 使用自定义 IEqualityComparer 那么您可能需要 将其也传递到构造函数中

Constructing the Dictionary<K,V> directly will be slightly more efficient than calling ToDictionary. The constructor will pre-allocate the target dictionary to the correct size and won't need to resize on-the-fly as it goes along.

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

If your ConcurrentDictionary<K,V> uses a custom IEqualityComparer<K> then you'll probably want to pass that into the constructor too.

娇纵 2024-10-05 08:53:02

没有。这完全没问题。 .NET 序列就是这样。 :D

Nope. This is completely fine. .NET sequences are just nice like that. :D

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文