我想知道如何为有序列表编写好的 GetHashCode()



我做了一个包含List<T>的类.(T是我做的一个结构。我想覆盖Equals()GetHashCode().所以我需要从List<T>制作哈希代码.如何从有序列表中制作好的哈希代码?

Jon Skeet在类似的帖子中提供了一个很好的例子:

public override int GetHashCode()
{
unchecked
{
int hash = 19;
foreach (var foo in foos)
{
hash = hash * 31 + foo.GetHashCode();
}
return hash;
}
}

素数在散列时通常非常有用。如果你有兴趣知道为什么,你必须查找数学,因为人们很可能比我更善于解释这一点。

最新更新