1
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));
要素をリスト(最後の行)に追加すると、辞書の対応するキー値が変更される理由を理解できませんか?リスト<T>はどのように辞書<K, List<T>で動作しますか?
辞書の値はリストオブジェクトへの参照に過ぎないので、 'list'の値と同じです。 –
@AlexD:ここでは「参考に」と言わないほうがいいと思います。私はあなたが何を意味しているのか知っていますが、値渡しの参照と参照渡しの引数の間には大きな違いがあります。 –
@JonSkeet OK、削除)。 – AlexD