我正在尝试将值插入 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/