c# - C#中相同数组的不同哈希码

标签 c# arrays hashcode

这是伪代码

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/

相关文章:

arrays - 为什么 Swift 编译器无法确定混合类型数组中元素的类型?

java - 当 hashcode() 返回零时,对 Collection 实现有何影响

sql - 无法输出 Guid Hashcode

c# - 为平台独立的字符串生成哈希码

javascript - JavaScript 是否在内部将数组转换为对象?

c# - 插件 dll 中的 Log4Net 配置?

java - 为什么 Arrays.asList(charArray).indexOf 总是返回 -1?

java - 如何以与 List.hashCode() 相同的方式计算流的哈希码

c# - VB.Net 内联注释

c# - 数组中的销毁