向字典中添加值

本文关键字:添加 字典 | 更新日期: 2023-09-27 18:14:18

对于像Dictionary<key,value>这样简单的字典,我知道我可以像这样添加一个条目到字典中:

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

但是像这样更复杂的字典呢:

Dictionary myDic<string, List<MyClass>>

,其中每个键可能有我的类的值列表?我们怎么加进去呢?

向字典中添加值

下面是我使用的代码片段:

// 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);

这是最"经济"的方法,因为它不需要对字典执行多次搜索。

同理:

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

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

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

您可以使用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

如果要添加的值是列表中的一项,则可以:

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