title: How List<T> works with Dictionary<K, List<T>>?
body: <pre><code>var solutions = new Dictionary&lt;int, List&lt;Tuple&lt;int, int&gt;&gt;&gt;();
  
  List&lt;Tuple&lt;int, int&gt;&gt; list = null;
  
  var z = solutions.TryGetValue(sum, out list);
  if (!z)
  {
     list = new List&lt;Tuple&lt;int, int&gt;&gt;();
     solutions.Add(sum, list);
  }
  
  list.Add(new Tuple&lt;int, int&gt;(a, b));
  </code></pre>
  
  <p>I don't understand why when I add element to list (last line) it change corresponding key-value in dictionary?</p>