通过Lambda表达式进行多字段联接
本文关键字:字段 Lambda 表达式 通过 | 更新日期: 2023-09-27 18:28:08
我正试图弄清楚如何在其中引入多个字段匹配。现在我是基于与公司表匹配的UserId加入的。但是,如果我想在那里也有一个AND,比如c.SomeField = somevalue
,该怎么办?
var companyUsers = users.Where(u => u.IsEmployee)
.Join(companies,
u => u.UserId, c => c.UserId,
(u, c) => u.UserId)
.ToList();
如果somevalue
是一个常数(即与用户无关),那么您应该首先过滤companies
:
var companyUsers = users.Where(u => u.IsEmployee)
.Join(companies.Where(c => c.SomeField == someValue),
u => u.UserId, c => c.UserId, (u, c) => u.UserId)
.ToList();
如果您需要将用户的两个字段连接到公司的两个域,请使用SLaks所示的匿名类型。
您需要加入匿名类型:
as.Join(bs, a => new { a.X, a.Y }, b => new { b.X, b.Y })