2017-02-28 1 views
0

LINQ 쿼리가 있는데 왼쪽 조인을 수행 한 후 NULL 값을 처리하고 싶습니다. 아이가 null의 경우Lambda Left Join

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(); 

, 나는 대신에 부모를 할당 할 :

나는 아래의 코드를 가지고있다. 그러나 할당 중에 변환 오류가 발생합니다. 이것을 할 수있는 방법이 있습니까?

답변

0

이 외부 왼쪽이 올바른 구문은 귀하의 경우 가입 :

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();