我正在try 确定.NET3.5(C#)中的两个HashSet个对象是否是相等的集合,i.e.个对象包含相同的值.这似乎是一个人显然想要做的事情,但是所提供的函数似乎都没有为您提供此信息.

我认为这样做的方法是判断两个集合的计数是否等于and,其中一个集合是另一个集合的子集(不正确).我认为唯一可能发生的方法是如果它们是相等的集合.示例代码:

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);

.net相关问答推荐

DI通过对象的接口而不是实际类型来解析服务

在计算Total毫秒时,.NET TimeSpan类中是否存在错误?

[x.x.x,)在Packages.lock.json依赖项中是什么意思?

AppShell - 返回导航失败,匹配的路由不明确......但我只注册了一次路由

查找 2 个已知值之间的字符串

将字符串与容差进行比较

在 C# 中输入按键

我应该创建一个 DateRange 对象吗?

根源是什么?

如何将自定义 UserControl 显示为对话框?

是否有 TLS 1.2 的 .NET 实现?

如何在可取消的异步/等待中处理 TransactionScope?

在 .NET 中计算目录大小的最佳方法是什么?

如何在 WebBrowser 控件中注入 Javascript?

Microsoft.Bcl.Build NuGet 包有什么作用?

SqlBulkCopy 的推荐批量大小是多少?

如何在 nuspec 中指定特定的依赖版本?

如何向 C# Winforms 中的标签添加提示或工具提示?

表单不响应 KeyDown 事件

SqlParameter 已被另一个 SqlParameterCollection 包含 - using() {} 作弊吗?