xia*_*o 啸 4 .net c# testing hashset
我正在为用 C# 编写的库编写测试。我想测试两个列表是否相同当且仅当它们具有相同的元素(不要求元素具有相同的顺序)。我尝试将列表转换为哈希集并检查两个哈希集是否相同。但运行结果却不是我所期望的。
谁能解释一下 hashset contains 方法是如何工作的?它是通过对象的 getHashCode 方法还是 equals 方法比较两个对象?谢谢!
Han*_*ant 5
它使用您传递给 HashSet 构造函数的 IEqualityComparer<>。如果您没有通过,那么它将使用 EqualityComparer<>.Default。其中,如果元素类型未实现 IEquatable<>,则使用该类型的 Equals 和 GetHashCode 方法。
我猜想您的列表包含不会覆盖这些方法的对象。使用 IEqualityComparer 构造函数参数进行修复。
归档时间:
15 年 前
查看次数:
2121 次
最近记录: