GethashCodeを再刻印するクラスから生のハッシュコードを取得するにはどうすればよいですか?
-
30-10-2019 - |
質問
短い質問: どうすれば入手できますか object.GetHashCode()
再実装されたオブジェクトの価値 GetHashCode()
?
長い話:だから私は約10万のオブジェクトを持っています。それぞれが多くの(コンパイルではない)一般的な文字列を共有しています。値が等しい場合と同様に、同じインスタンスです。
それを知って、私は標準的なオブジェクトの比較を使用したいと思っています(ReferenceEquals
)完全な文字列の比較ではなく、特にこれらはかなり定期的に辞書で見上げられているためです。
だから私はaを宣言します class ReferenceEqualityComparer : IEqualityComparer
で使用するには Dictionary<string, TValue>
, 、とにかく持っていると便利であると考え、2つの方法を実装しようとします。
平等は十分に簡単です、使用してください object.ReferenceEquals
.
しかし、どうすれば同等のものを得ることができますか object.GetHashCode()
のために GetHashCode
方法?
つまり、オブジェクトのインスタンスの表現を取得するにはどうすればよいですか?
私はこれを行うことができる他の方法があることを知っています - InternedString
への参照を保持するクラス string
, 、しかし実装していません Equals
また GetHashCode
, 、または各オブジェクトの文字列ではなくインデックスを保存しますが、私は今興味があります - 実際にジェネリックを実装する方法はありますか ReferenceEqualityComparer
?
正しい解決策はありません