ディクショナリがリストによってインデックス付けされるプログラムを作成しようとしています。(私を信頼してください。はい、オプションがありますが、リストによるインデックス作成が好きです)。最小限の動作 (実際には動作せず、最後の 1 行だけが問題です) の例があります。
using System;
using System.Collections.Generic;
namespace test
{
class Program
{
static void Main(string[] args)
{
Dictionary<List<String>, int> h = new Dictionary<List<string>,int>();
List<String> w = new List<string> {"a"};
h.Add(w, 1);
w = new List<string>{"b"};
h.Add(w,2);
w = new List<string>{"a"};
int value = 0;
h.TryGetValue(w, out value);
Console.WriteLine(value+" "+h[w]);
}
}
このプログラムをデバッグすると、h に 2 つの要素があることがはっきりとわかりますが、これらの要素には正しいインデックス (h[w]) を介してアクセスすることはできません。私は間違っていますか、それとも何か奇妙なことが起こっていますか?