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