自分が書いたクラスをキーのタイプとして使用する必要がありますDictionary
のデフォルトコンストラクタについてMSDNのドキュメントを読みましたDictionary
Dictionary<TKey, TValue>キーが等しいかどうかを判断するには、等式の実装が必要です。このコンストラクターは、デフォルトのジェネリック等式比較子を使用しますEqualityComparer<T>.Default。type がジェネリックインターフェイスをTKey実装している場合System.IEquatable<T>、デフォルトの等式比較プログラムはその実装を使用します。IEqualityComparer<T>または、比較パラメーターを受け入れるコンストラクターを使用して、ジェネリックインターフェイスの実装を指定することもできます。
これにより、私がしなければならないのは、キーのクラスを実装することだけだと思います。System.IEquatable<T>
しかし、私は方法System.IEquatable<T>がないことに非常に驚いていHashCode()ます。
では、この方法で作成された辞書はハッシュコードを使用しますか?はいの場合、それはどこから来ていますか?そうでなければ、私の辞書は一定のコストのアクセス操作を持ちますか(ハッシュコードなしでは達成できないと思います)