使用更简单的词典Dictionary<key,value>
我知道我可以像这样在词典中添加一个项目:
if(!myDic.ContainKeys(key))
myDic[key] = value;
但是这样一个更复杂的字典怎么样:
Dictionary myDic<string, List<MyClass>>
每个键可能有我班级的值列表?我们如何添加?
答案 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);