将项目追加到带有列表内部的字典

时间:2020-03-13 22:00:07

标签: c# .net

如何使用内部列表将项追加到字典?

这是我的代码:

Dictionary<string, List<double>> listVariables = new Dictionary<string, List<double>>();

这是我附加新值的方式:

for (int x = 1; x <= 4; x++) {
    listVariables["foo" + x].Add(1.1);
}

没有发现错误,但是当我启动我的应用程序时,它崩溃了,我得到了:

An unhandled exception of type 'System.Collections.Generic.KeyNotFoundException' occurred in mscorlib.dll Additional information the given key was not present in the dictionary

我可以用listVariables["foo" + x].Add(1.1);代替listVariables["foo" + x] = new List<double> { 1.1 };

但这将始终替换第一个索引值,我想将所有数据附加在一行行中

我该如何解决?非常感谢。

2 个答案:

答案 0 :(得分:3)

您需要检查密钥是否已经存在,如果不存在,则需要添加一个空列表:

for (int x = 1; x <= 4; x++) 
{
    var key = "foo" + x;
    if (!listVariables.ContainsKey(key))
        listVariables.Add(key, new List<double>());

    listVariables[key].Add(1.1);
}

答案 1 :(得分:1)

您需要先检查密钥的存在,必要时添加一个新列表。

for (int x = 1; x <= 4; x++)       
{ 
    var key = "foo" + x;
    if (!listVariables.ContainsKey(key))
        listVariables[key] = new List<double>();
    listVariables[key].Add(1.1); 
}