如果没有添加新元素C#,如果Key存在,则为Dictionary

Ame*_*nde 1 c# asp.net-mvc dictionary keyvaluepair

我有

Dictionary<String, List<String>> filters = new Dictionary<String, List<String>>();
Run Code Online (Sandbox Code Playgroud)

这是有价值的country = us.到目前为止,我可以在不重复按键时添加它.现在当country重复密钥时.它显示密钥已经存在.

我想要的是如何在同一个键中添加多个值.我无法做到.请提出建议.

for (int i = 0; i < msgProperty.Value.Count; i++)
{
    FilterValue.Add(msgProperty.Value[i].filterValue.Value);
    filterColumn = msgProperty.Value[i].filterColumnName.Value;
    filters.Add(filterColumn, FilterValue);
}
Run Code Online (Sandbox Code Playgroud)

我想要的是

country = US,UK

Cod*_*ter 10

所有变量的不同类型都有点令人困惑,这无助于您编写代码.我假设你Dictionary<string, List<string>>的关键词是"语言",价值是该语言的国家列表,或者其他什么.在寻求帮助时,将问题减少到可以重现问题的最小集合非常有用.

无论如何假设如上所述,它就像这样简单:

  • 尝试获取dictionary["somelanguage"]密钥existingKey.
  • 如果它不存在,请添加它并将其存储在同一个变量中.
  • List<string>在"somelanguage"键下添加到词典.

代码如下所示:

void AddCountries(string languageKey, List<string> coutriesToAdd)
{
    List<string> existingKey = null;

    if (!dictionary.TryGetValue(languageKey, out existingKey))
    {
        // Create if not exists in dictionary
        existingKey = dictionary[languageKey] = new List<string>()
    }

    existingKey.AddRange(coutriesToAdd);
}
Run Code Online (Sandbox Code Playgroud)