C# Lambda左连接
我有一个LINQ查询,我想在执行左连接后处理空值 我的代码如下:C# Lambda左连接,c#,linq,lambda,C#,Linq,Lambda,我有一个LINQ查询,我想在执行左连接后处理空值 我的代码如下: var leftjoinlist = listA.GroupJoin( listB, a => a.Code, b => b.Code, (a, g) => g .SelectMany(new { Parent = a, Child = b }) .DefaultIfEmpty(new { Parent = a, Child = a
var leftjoinlist = listA.GroupJoin(
listB,
a => a.Code,
b => b.Code,
(a, g) => g
.SelectMany(new { Parent = a, Child = b })
.DefaultIfEmpty(new { Parent = a, Child = a }))
.SelectMany(g => g).ToList();
如果child为null,我想改为分配父级。但是,我在分配过程中遇到一个转换错误。有什么方法可以做到这一点吗?这是在您的案例中使用外部左连接的正确语法:
listA
.GroupJoin(listB, a => a.Code, b => b.Code, (a, g) => new {Parent = a, Childs = g})
.SelectMany(arg => arg.Childs.DefaultIfEmpty(),
(arg1, c) => new {arg1.Parent, Child = c ?? arg1.Parent})
.ToList();