C#:使用 Linq 和 Lambda 获取 2 个集合之间不匹配的元素

标签 c# linq lambda

我有两个集合,比较它们并想得到不匹配的项目并放入一个新的集合中。我不想使用使用 2 个 foreach 循环的常规方法。如何使用 linq 和 lambda 表达式实现它? 例如

    int[] collection1 = new int[] { 1, 2, 3, 4, 5 };
    int[] collection2 = new int[] { 2, 3 };
    // Goal: Using Linq and Lambda Expression: the new collection3 should contain 1, 4, 5

已编辑:抱歉,我忘了说:collection2 是 collection1 的子集,因此 collection2 中的所有元素都必须存在于 collection1 中。

最佳答案

是这样的吗?

int[] collection3 = collection1.Except(collection2).ToArray();

关于C#:使用 Linq 和 Lambda 获取 2 个集合之间不匹配的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17829291/

相关文章:

C#:是否应该在调用的方法中关闭/处置 Streams?

.net - 如何从 SQL 返回一页结果?

c# - 如果 Linq 结果为空

c# - 尝试从 linq 正在创建的(匿名类)对象获取属性/字段

java - Java SerializedLambda 的 captureClass 和 implClass 有什么区别?

c# - 对 C# Nest 的简单匹配查询

python - 检查两个 Python 函数是否相等

c# - 在 .NET Core 应用程序中使用 LTTng 事件

c# - 如何在遍历树结构时匹配路径

c# - 在扩展桌面上克隆表单