如何在没有任何ID的情况下在类中强制GetHashCode

这个问题在这里已经有了答案:

  • 什么是重写的System.Object.GetHashCode的最佳算法? 17个答案
  • 正确实现GetHashCode [复制] 1个答案

  • 您应该将您的对象的哈希码计算基于不可变字段,如果您可以使Person的FirstName和LastName字段不可变,则可以使用基于Josh Bloch建议的以下模式:

    public override int GetHashCode()
    {
        int hash = 17;
        hash = hash * 31 + FirstName.GetHashCode();
        hash = hash * 31 + LastName.GetHashCode();
        return hash;
    }
    

    public override int GetHashCode()
        {
            return String.Concat(FirstName, LastName).GetHashCode();
        }
    

    你可以做这样的事情:

    public override int GetHashCode()
    {
        return FirstName.GetHashCode() ^ LastName.GetHashCode()
    }
    

    检查这个更多

    链接地址: http://www.djcxy.com/p/39777.html

    上一篇: How to impelement GetHashCode in class without any ID

    下一篇: Unique HashCode Generation for Unique object using C#