c# - A组减B组

标签 c# .net set

我试图以最有效的方式从另一组中拿走一组。因此,如果我有以下集合 A 和 B,那么 A_minus_B 应该给出 {1, 2, 6}。这是我所拥有的,尽管我确信这不是最有效的方法。

HashSet<int> A = new HashSet<int>{ 1, 2, 3, 4, 5, 6 };
HashSet<int> B = new HashSet<int> { 3, 4, 5 };

HashSet<int> A_minus_B = new HashSet<int>(A);

foreach(int n in A){
    if(B.Contains(n)) A_minus_B.Remove(n);
}

最佳答案

您可以使用 Except()方法。这是代码:

HashSet<int> A_minus_B = new HashSet<int>(A.Except(B)); 

关于c# - A组减B组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16067072/

相关文章:

c# - 使用 LINQ 拆分列表中的项目

c# - Prism WPF : Loading a User Control on Startup

c# - asp.net core 如何获取查询字符串参数值?

.net - 如何在 Nuget 包中包含 resx 文件

c# - TransactionScope 中的所有代码如何在范围提交或回滚之前不会真正执行?

c# - Preview Mouse Down 事件在第一次调用时返回带有空引用 CurrentColumn 的发件人

c# - 如何部署一个不断变化的DLL?

获取/设置属性的 C# 和 Silverlight 基本类语法不起作用

java - 我如何(更)轻松地比较两组数字?

model-view-controller - CakePHP 对一起使用 set() 和 compact() 的说明。仅适用于 compact()