我正在尝试在 Lambda 表达式中编写以下 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()
};
Run Code Online (Sandbox Code Playgroud)
我只能走到这一步:
var result = defaults.Join(get, defaultKey =>
defaultKey.PermissionName, getKey =>
getKey.PermissionName, (a, b) => new
{
PermissionName = a.PermissionName,
Permission = b.Permission
});
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,Join()扩展方法没有提供获取joined集合的方法。我也在网上搜索过,但找不到任何线索。请随意提出建议。
使用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()
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5394 次 |
| 最近记录: |