一尘不染

整数数组的C#哈希码

algorithm

我有一个在内部只是一个整数数组的类。一旦构造好,阵列就永远不会改变。我想预先计算一个好的哈希码,以便可以将该类非常有效地用作Dictionary中的键。数组的长度小于30个项目,并且整数通常在-1000到1000之间。


阅读 197

收藏
2020-07-28

共1个答案

一尘不染

不是很聪明,但足以满足大多数实际目的:

编辑:更改由于Henk Holterman的评论,对此表示感谢。

int hc=array.Length;
for(int i=0;i<array.Length;++i)
{
     hc=unchecked(hc*314159 +array[i]);
}
return hc;

如果您需要更高级的东西,请看这里

2020-07-28