c#-4.0 - 在 ConcurrentDictionary 中插入值

标签 c#-4.0

我正在尝试将值插入 ConcurrentDictionary,我习惯于使用字典,所以这是行不通的:

  public ConcurrentDictionary<string, Tuple<double, bool,double>> KeyWords =  new
                ConcurrentDictionary<string, Tuple<double, bool,double>>
    {
        {"Lake", 0.5, false, 1}
    };

什么是正确的方法,因此我正在上课。

最佳答案

Collection initializers是公共(public)调用的语法糖 Add()方法...其中ConcurrentDictionary不提供 - 它有一个 AddOrUpdate() 代替方法。

您可以使用的替代方法是中间 Dictionary<>传递给接受 IEnumerable<KeyValuePair<K,V>> 的构造函数重载:

public ConcurrentDictionary<string, Tuple<double, bool,double>> KeyWords =  
    new ConcurrentDictionary<string, Tuple<double, bool,double>>( 
       new Dictionary<string,Tuple<double,bool,double>>
       {
          {"Lake", Tuple.Create(0.5, false, 1.0)},
       } 
    );

注意:我更正了您的示例以使用 Tuple.Create()因为元组不是从初始化器中推断出来的。

关于c#-4.0 - 在 ConcurrentDictionary 中插入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5425835/

相关文章:

c# - Task.WaitAll 不等待子任务?

syntax - C#中函数修饰符的顺序

c# - 从 cdn URL 下载图像文件

C# - Websocket - 将消息发送回客户端

C# 重载 try/catch

c# - 如何使用 sharpsvn 检查 subversion URL 是文件还是目录

C# 按特定属性比较两个大型项目列表

c#-4.0 - 为什么使用命名参数时这段 C# 代码不能编译?

c# - 无法使用 LOCK C# 锁定值类型

ios - 如何在 Xamarin 中以编程方式创建不规则按钮?