[英]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.