C#等效的Java IdentityHashMap

maf*_*afu 11 c# java dictionary hashmap

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

但是,这似乎失去了散列所带来的优势.有没有办法从每个不同的对象中获取单个哈希码?或者这是不可能的,我应该使用其他方法?

Jon*_*eet 18

您可以非虚拟地使用RuntimeHelpers.GetHashCode(object)哪些调用object.GetHashCode()- 这相当于System.identityHashcodeJava.我认为这就是你所追求的.因此,您IEqualityComparer只需将其用于散列和object.ReferenceEquals平等.