据我所知,C#中没有直接的等价物。我目前的想法是使用带有自定义IEqualityComparer的Dictionary,它检查引用相等性。
然而,这似乎失去了哈希所获得的优势。有没有办法从每个不同的对象中获取单个哈希码?或者这是不可能的,我应该使用其他方法吗?
答案 0 :(得分:18)
您可以使用非虚拟调用object.GetHashCode()
的{{3}} - 这相当于Java中的System.identityHashcode
。我认为这就是你所追求的。因此,IEqualityComparer
只会将其用于散列,object.ReferenceEquals
用于平等。