C# I';I’我想知道如何为有序列表编写好的GetHashCode()
我创建了一个包含C# I';I’我想知道如何为有序列表编写好的GetHashCode(),c#,gethashcode,C#,Gethashcode,我创建了一个包含List的类(T是我创建的一个结构),我想重写Equals()和GetHashCode()。所以我需要从列表中生成HashCode。如何从有序列表中生成好的哈希代码?Jon Skeet在一篇类似文章中提供了一个很好的例子: public override int GetHashCode() { unchecked { int hash = 19; foreach (var foo in foos) {
List
的类(T
是我创建的一个结构),我想重写Equals()
和GetHashCode()
。所以我需要从列表中生成HashCode
。如何从有序列表中生成好的哈希代码?Jon Skeet在一篇类似文章中提供了一个很好的例子:
public override int GetHashCode()
{
unchecked
{
int hash = 19;
foreach (var foo in foos)
{
hash = hash * 31 + foo.GetHashCode();
}
return hash;
}
}
素数在散列时通常非常有用。如果你想知道原因,你必须查一下数学,因为人们很可能比我更善于解释这一点。这是否回答了你的问题?