繁体   English   中英

c# 中包含字符串属性的哈希对象

[英]hash objects containing string properties in c#

我需要在我的字典中创建一个自定义类作为键。 当键是字符串时,C# 使用哪种方法进行散列?

internal class Patient:IEquatable<Patient>
    {
        public string fname{ get; set; }
        public string lname{ get; set; }
      

    
        public override int GetHashCode()
        {
            return StringComparer.OrdinalIgnoreCase.GetHashCode(fname+lname);

        }

    }

这是正确的方法(连接和生成哈希),还是他们生成哈希的更好方法。

从 .NET Core 2.1 开始,您可以使用HashCode.Combine

return HashCode.Combine(fname, lname);

或者对于不区分大小写的版本:

return HashCode.Combine(StringComparer.OrdinalIgnoreCase.GetHashCode(fname),
    StringComparer.OrdinalIgnoreCase.GetHashCode(fname));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM