我正在尝试将值插入ConcurrentDictionary,我习惯使用字典,所以这不起作用:
public ConcurrentDictionary<string, Tuple<double, bool,double>> KeyWords = new
ConcurrentDictionary<string, Tuple<double, bool,double>>
{
{"Lake", 0.5, false, 1}
};
什么是正确的方法,因此我正在上课。
答案 0 :(得分:10)
Collection initializers是调用公共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()
,因为元组不是来自初始值设定项。
答案 1 :(得分:3)
您可以使用dictionary initializer:
var dict = new ConcurrentDictionary<int, string>
{
[0] = "zero",
[1] = "one",
};
是的,我知道问题是c#4