【发布时间】:2016-02-23 21:17:27
【问题描述】:
我对字典和列表有疑问,我创建了一个字典:
private Dictionary<int, List<int>> mainGraph = new Dictionary<int, List<int>>();
然后我想扩展一个现有密钥的列表,这样做没有问题:
public void addLinkToGraph(int oldKey,int newValue)
{
List<int> dummyList = mainGraph[oldKey];
dummyList .Add(newValue);
mainGraph[oldKey] = dummyList;
}
但是如果我尝试直接在字典列表上做:
public void addLinkToGraph(int oldKey,int newValue)
{
mainGraph[oldKey] = mainGraph[oldKey].Add(newValue);
}
返回错误:
错误 CS0029 无法将类型“void”隐式转换为“System.Collections.Generic.List”
有人可以帮我理解为什么以及如果第一个解决方案是这样做的好方法吗?
【问题讨论】:
-
.Add(newValue)没有返回值,它是void。 -
mainGraph[oldKey].Add(newValue);应该可以解决问题。 -
在您的第一个 sn-p 中,
mainGraph[oldKey] = dummyList是不必要的 - 无需将相同的列表重新分配给字典中的键,因为 List.Add() 添加到现有对象而不是而不是创建一个新的。
标签: c# list dictionary