目的はDictionary使って値等価の参照型インスタンスを高速検索
することです。だからハッシュがばらけててくれないと困ります。。
プロパティを変更したときにハッシュを再計算させて、キャッシュに
残しとけばGetHashCode()ではそれを返すだけだから速度は解決のような。
別の値でおんなじハッシュになったらどうするんでしょうか?リストで
連結して、それらをEquals()で比較?