Java IdentityHashMapに相当するC#
-
22-07-2019 - |
質問
私が知る限り、C#に直接相当するものはありません。私の現在のアイデアは、参照の等価性をチェックするカスタムIEqualityComparerで辞書を使用することです。
ただし、これはハッシュによって得られる利点を失うようです。すべての異なるオブジェクトから個別のハッシュコードを取得する方法はありますか?またはこれは不可能であり、他のアプローチを使用する必要がありますか?
解決
RuntimeHelpers.GetHashCode(object)
を使用できます。 は、 object.GetHashCode()
を非仮想的に呼び出します。これは、Javaの System.identityHashcode
と同等です。それがあなたが求めていることだと思います。したがって、 IEqualityComparer
はハッシュ化にそれを使用し、平等に object.ReferenceEquals
を使用します。
所属していません StackOverflow