【问题标题】:C# Equivalent of Java IdentityHashMapJava IdentityHashMap 的 C# 等价物
【发布时间】:2010-10-24 17:58:49
【问题描述】:

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

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

【问题讨论】:

    标签: c# java dictionary hashmap


    【解决方案1】:

    您可以使用RuntimeHelpers.GetHashCode(object) 以非虚拟方式调用object.GetHashCode() - 这相当于Java 中的System.identityHashcode。我想这就是你所追求的。所以你的IEqualityComparer 只会用它来做散列,object.ReferenceEquals 用来做相等性。

    猜你喜欢
    • 2010-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-17
    • 2010-11-03
    • 2014-08-29
    • 2011-07-21
    • 1970-01-01
    相关资源
    最近更新 更多