添加到词典的值

时间:2014-07-23 13:57:06

标签: c#

使用更简单的词典Dictionary<key,value>我知道我可以像这样在词典中添加一个项目:

if(!myDic.ContainKeys(key))
  myDic[key] = value;

但是这样一个更复杂的字典怎么样:

Dictionary myDic<string, List<MyClass>>

每个键可能有我班级的值列表?我们如何添加?

4 个答案:

答案 0 :(得分:5)

以同样的方式:

myDic[key] = new List<MyClass()>();

如果列表已经存在并且您想添加它:

myDic[key].Add(new MyClass());

答案 1 :(得分:5)

以下是我用于此的代码段:

// This is the list to which you would ultimately add your value
List<MyClass> theList;
// Check if the list is already there
if (!myDict.TryGetValue(key, out theList)) {
    // No, the list is not there. Create a new list...
    theList = new List<MyCLass>();
    // ...and add it to the dictionary
    myDict.Add(key, theList);
}
// theList is not null regardless of the path we take.
// Add the value to the list.
theList.Add(newValue);

这是最“经济”的方法,因为它不会对字典执行多次搜索。

答案 2 :(得分:3)

您可以使用TryGetValue方法:

List<MyClass> list;

if (myDic.TryGetValue(key, out list))
  list.Add(value); // <- Add value into existing list
else
  myDic.Add(key, new List<MyClass>() {value}); // <- Add new list with one value

答案 3 :(得分:2)

如果要添加的值是列表的项目,您可以执行以下操作:

if(!myDic.Keys.Contains(key)) {
    myDic[key] = new List<MyClass>();
}
myDic[key].Add(value);