c# - 用于选择两个集合之间的公共(public)元素的 Linq 语句

标签 c# linq

我正在尝试实现一个搜索功能,我想选择变量 AB 中常见的所有元素并删除其余元素。

我的代码如下所示:

A.ForEach(y =>
{
    temp = temp.Where(x => x.Id== y.Id);
});

问题是,如果 A 具有 temp 不包含的某些值,我将得到一个空的 temp。

我希望我说得足够清楚,但只是为了确保: 如果 A 包含 6、10 和 temp 包含 10, 7。我只想有 10。

正确的 join 或其他 Linq 语句是什么?我无法使用 intersect 因为两个变量来自不同的表。

最佳答案

您可能想要使用联接。

A.Join(B, a => a.Id, b => b.Id, (a,b) => new { A = a, B = b });

这将产生一个可枚举的行,其中 A 和 B 连接的行和匿名类型为:

public class AnonymousType {
   AType A;
   BType B;
}

加入信息来自C# Joins/Where with Linq and Lambda

关于c# - 用于选择两个集合之间的公共(public)元素的 Linq 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30181990/

相关文章:

c# - EFcore 中 'id' 操作的结果中不存在所需的列 `FromSql`

c# - Linq group 通过使用 Max 生成重复项

c# - 将字典字符串字符串转换为json字符串

c# - 如何在运行时制作exe maker

c# - DateTime 25 年前的今天

c# - 从innerHTML获取name属性

c# - 从动态数据透视表中加入具有匿名列的列表

c# - 如何将 const char* API 导入到 C#?

c# - CPU利用率

c# - 使用 LINQ to EF 确定重复数据