这是伪代码
sbyte[] array1 = new sbyte[100];
array1.setValues();
sbyte[] array2 = (sbyte[])array1.Clone();
但是array1.getHashCode()
不等于array2.getHashCode()
;
我应该怎么做才能为 array1 和 array2 获得相同的哈希码?
P.S:词典没有用。因为我想将这些数组添加到哈希表中。在每次添加之后,我需要检查之前添加的可能相同的内容数组。
P.S2:看来我应该澄清一下我的问题。起初我在 Using Hash in C# 发布了完整的问题解决后提出了这个问题。
最佳答案
那不是同一个数组 - 它是具有相同内容的不同数组。
数组 GetHashCode() 不会散列内容。该散列是引用的简单散列。
你可以写一个自定义 IEqualityComparer<sbyte[]>
如果需要字典等。
关于c# - C#中相同数组的不同哈希码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4634425/