GetHashCode()仅来自布尔值
本文关键字:布尔值 GetHashCode | 更新日期: 2023-09-27 18:03:27
我有一个不可变的类,它的唯一字段是bool[]
(大小在运行时确定)。
如何计算该类的哈希码?一般来说,我只会在每个字段上调用GetHashCode()
,并将它们与这些操作符之一:+ | &
结合起来,但由于唯一可能的哈希码是false
的0
和true
的1
,这并不能真正让我得到任何地方。我的实现只需要使用bools
,并且必须适用于任意大小的数组。
(可能不太重要,但我是在c#/. net编码。)
假设您的bool[]
命名为bools
:
unchecked {
int hash = 17;
for(int index = 0; index < bools.Length; index++) {
hash = hash * 23 + bools[index].GetHashCode();
}
return hash;
}