List <t>如何与Dictionary <k,list <t =“”>&gt;?一起使用?

时间:2016-06-17 13:24:40

标签: c# algorithm

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

我不明白为什么当我将元素添加到列表(最后一行)时它会改变字典中相应的键值?

1 个答案:

答案 0 :(得分:2)

通过向列表添加元素,您不会更改字典中的键值对。您正在更改列表。而字典只是持有对该列表的引用,因此它似乎有所改变。