我有一个在内部只是一个整数数组的类。一旦构造好,阵列就永远不会改变。我想预先计算一个好的哈希码,以便可以将该类非常有效地用作Dictionary中的键。数组的长度小于30个项目,并且整数通常在-1000到1000之间。
不是很聪明,但足以满足大多数实际目的:
编辑:更改由于Henk Holterman的评论,对此表示感谢。
int hc=array.Length; for(int i=0;i<array.Length;++i) { hc=unchecked(hc*314159 +array[i]); } return hc;
如果您需要更高级的东西,请看这里。