var solutions = new Dictionary<int, List<Tuple<int, int>>>();
List<Tuple<int, int>> list = null;
var z = solutions.TryGetValue(sum, out list);
if (!z)
{
list = new List<Tuple<int, int>>();
solutions.Add(sum, list);
}
list.Add(new Tuple<int, int>(a, b));
我不明白为什么当我将元素添加到列表(最后一行)时它会更改字典中相应的键值?
最佳答案
您不会通过向列表添加元素来更改字典中的键值对。您正在更改列表。字典只是保留对该列表的引用,因此它似乎发生了变化。
关于c# - List<T> 如何与 Dictionary<K, List<T>> 一起工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37882769/