gpt4 book ai didi

c# - 如何实现自己的 HashSet contains 方法

转载 作者:太空狗 更新时间:2023-10-30 00:15:25 25 4
gpt4 key购买 nike

我有 int[9] 数组的 HahSet 集合,想知道 HashSe 是否已经包含该数组。例如

       HashSet<int[]> set = new HashSet<int[]>();
int[] a=new int[9]{1,2,3,4,5,6,7,8,9};
set.Add(a);
int[] a2=new int[9]{1,2,3,4,5,6,7,8,9};
if(!set.Contains(a2))
set.Add(a2);

我如何覆盖或实现自己的 Equals 方法,以便 HastSet.Contains 的行为类似于 Arrays.SequenceEquals?

最佳答案

您需要提供 IEqualityComparer<int[]> 的实现,并使用采用自定义比较器的构造函数:

class MyEqCmpForInt : IEqualityComparer<int[]> {
public bool Equals(int[] a, int[] b) {
...
}
public int GetHashCode(int[] data) {
...
}
}

HashSet<int[]> set = new HashSet<int[]>(new MyEqCmpForInt());

关于c# - 如何实现自己的 HashSet contains 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14799167/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com