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));
我不明白为什么当我将元素添加到列表(最后一行)时它会改变字典中相应的键值?
答案 0 :(得分:2)
通过向列表添加元素,您不会更改字典中的键值对。您正在更改列表。而字典只是持有对该列表的引用,因此它似乎有所改变。