我不太明白为什么Object.GetHashCode()
为两个相同的字节数组返回不同的值,但为不是IEnumerable
值类型对象返回相同的值。例如:如何使用C#中的Object.GetHashCode()比较两个巨大的byte []数组?
byte e = 123;
Console.WriteLine(e.GetHashCode());
byte f = 123;
Console.WriteLine(f.GetHashCode());
输出
123
123
但当
byte[] a = new byte[3] { 1, 2, 3 };
Console.WriteLine(a.GetHashCode());
byte[] b = new byte[3] { 1, 2, 3 };
Console.WriteLine(b.GetHashCode());
输出
46104728
12289376
为什么会这样,我怎么能快速比较两个巨大数组没有比较他们的每个元素?
的hashCode平等**!= **平等 – spender