当值是列表时,插入键值对的第一个值

Cat*_*ato 0 c# dictionary initialization list

我有一个字典如下,其中键是一个字符串,值是一个双精度列表:

Dictionary<string, List<double>> dataStore = new Dictionary<string, List<double>>();
List<string> channel_names = new List<string>(); // contains the keys
Run Code Online (Sandbox Code Playgroud)

现在,当我想向此字典添加数据时,我会这样做:

if (dataStore.ContainsKey(channel_names[j]))
{
    dataStore[channel_names[j]].Add(measurement);
}
                            
else
{
    dataStore.Add(channel_names[j], new List<double>((int)measurement));
}
Run Code Online (Sandbox Code Playgroud)

第一个语句(添加到现有的键)工作正常,但第二个语句有问题,即当我试图用列表中的第一个双精度初始化键时。第一次测量被遗漏了。任何人都可以请建议为什么?

谢谢

Joh*_*lay 5

您正在使用构造函数List(int),其中int指定列表的初始容量;它不会将该数字添加到列表中。

您可以改为使用集合初始化器语法:

new List<double> { measurement }
Run Code Online (Sandbox Code Playgroud)