代码之家  ›  专栏  ›  技术社区  ›  Nicolas Webb

从.NET 4.0中的ConcurrentDictionary获取字典<K,V>

  •  1
  • Nicolas Webb  · 技术社区  · 14 年前

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

    这感觉太简单了:

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

    我觉得我好像错过了什么。

    2 回复  |  直到 14 年前
        1
  •  4
  •   LukeH    14 年前

    Constructing the Dictionary<K,V> directly 轻微地 比打电话更有效率 ToDictionary . 构造器将预先将目标字典分配到正确的大小,并且不需要动态调整大小。

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

    ConcurrentDictionary<K,V> 使用自定义 IEqualityComparer<K> 那你可能会想 pass that into the constructor too .

        2
  •  1
  •   Squirrelsama    14 年前