我试图在Lambda Expression中编写以下
Linq(查询样式),以便我可以链接并使我的代码更紧凑:
var result = from p1 in defaults
join p2 in get on p1.PermissionName equals p2.PermissionName
into joined
select new
{
PermissionName = p1.PermissionName,
Permission = joined.Select(e => e.Permission == null ? false : true)
.SingleOrDefault()
};
我只能走这么远:
var result = defaults.Join(get, defaultKey =>
defaultKey.PermissionName, getKey =>
getKey.PermissionName, (a, b) => new
{
PermissionName = a.PermissionName,
Permission = b.Permission
});
正如您所看到的,Join()扩展方法不提供获取连接集合的方法.
我也在网上搜索但找不到任何线索.请随时提出建议.
最佳答案 使用
GroupJoin
.
var result =
defaults.GroupJoin(
get,
p1 => p1.PermissionName,
p2 => p2.PermissionName,
(p1, joined) =>
new
{
PermissionName = p1.PermissionName,
Permission = joined.Select(e => e.Permission != null)
.SingleOrDefault()
});