我正在尝试实现一个搜索功能,我想选择变量 A
和 B
中常见的所有元素并删除其余元素。
我的代码如下所示:
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# - 用于选择两个集合之间的公共(public)元素的 Linq 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30181990/