C#等效的Java IdentityHashMap

时间:2009-05-08 09:17:22

标签: c# java dictionary hashmap

据我所知,C#中没有直接的等价物。我目前的想法是使用带有自定义IEqualityComparer的Dictionary,它检查引用相等性。

然而,这似乎失去了哈希所获得的优势。有没有办法从每个不同的对象中获取单个哈希码?或者这是不可能的,我应该使用其他方法吗?

1 个答案:

答案 0 :(得分:18)

您可以使用非虚拟调用object.GetHashCode()的{​​{3}} - 这相当于Java中的System.identityHashcode。我认为这就是你所追求的。因此,IEqualityComparer只会将其用于散列,object.ReferenceEquals用于平等。