c# - 您如何确定两个 HashSet 是否相等(按值,而不是按引用)?

标签 c# .net .net-3.5 set hashset

我正在尝试确定 .NET 3.5 (C#) 中的两个 HashSet 对象是否是相等的集合,包含相同的值。这似乎是人们显然想要做的事情,但所提供的功能似乎都没有为您提供此信息。

我能想到的方法是检查两组的计数是否相等并且一组是另一组的子集(不正确)。我认为唯一可能发生的方法是它们是相等的集合。示例代码:

HashSet<int> set1 = new HashSet<int>();
set1.Add(1);
set1.Add(2);
set1.Add(3);

HashSet<int> set2 = new HashSet<int>();
set2.Add(1);
set2.Add(2);
set2.Add(3);

if(set1.Count == set2.Count && set1.IsSubsetOf(set2))
{
    // do something
}

这会一直有效吗?有没有更好的办法?为什么 HashSet 没有 public bool IsEqualSetWith() 函数?

最佳答案

看方法SetEquals .

my_hashset.SetEquals(other);

关于c# - 您如何确定两个 HashSet 是否相等(按值,而不是按引用)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/494224/

相关文章:

C# Windows 10现代系统托盘菜单

c# - 我可以在 C# 中将 json 反序列化为匿名类型吗?

c# - 将参数传递给用户控件

c# - 反射找不到抽象类属性的私有(private) setter

c# - 使用自定义在数据库中存储不同的用户权限

c# - 通过 TCP 接收数据 : MemoryStream contains more data than expected

c# - 使用 C# Lambda 运算符

.net - WiX 自定义 Bootstrap 应用程序和 .NET 4.5

.net - 我能否以编程方式查看 .NET 应用程序中的托管堆内容?

c# - .Net 2+ : why does if( 1 == null ) no longer throw a compiler exception?