我正在试图弄清楚如何在此引入多个字段匹配。现在我基于匹配的UserId加入公司表。但是,如果我想在c.SomeField = somevalue
?
var companyUsers = users.Where(u => u.IsEmployee)
.Join(companies,
u => u.UserId, c => c.UserId,
(u, c) => u.UserId)
.ToList();
答案 0 :(得分:3)
您需要加入匿名类型:
as.Join(bs, a => new { a.X, a.Y }, b => new { b.X, b.Y })
答案 1 :(得分:3)
如果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所示的匿名类型。