Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# I';I’我想知道如何为有序列表编写好的GetHashCode()_C#_Gethashcode - Fatal编程技术网

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;
    }
}

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

这是否回答了你的问题?