[英]hash objects containing string properties in c#
I need to make a custom class as key in my dictionary.我需要在我的字典中创建一个自定义类作为键。 Which method is used by C# to do hashing when key is string?
当键是字符串时,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);
}
}
Is this the correct approach (concatenation and generating hash), or is their any better way to generate hash.这是正确的方法(连接和生成哈希),还是他们生成哈希的更好方法。
Since .NET Core 2.1 you can use HashCode.Combine
:从 .NET Core 2.1 开始,您可以使用
HashCode.Combine
:
return HashCode.Combine(fname, lname);
Or for case insensitive version:或者对于不区分大小写的版本:
return HashCode.Combine(StringComparer.OrdinalIgnoreCase.GetHashCode(fname),
StringComparer.OrdinalIgnoreCase.GetHashCode(fname));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.