pen*_*ake 4 .net c# linq left-join cartesian-product
想象一下,我有2个列表,一个是空的:
List<string> foo = new List<string>(){ "Ali","wall-e","Ellie" };
List<string> bar = new List<string>();
Run Code Online (Sandbox Code Playgroud)
我获得了2的笛卡尔积:
var q = from f in foo
from b in bar
select new {f,b};
Run Code Online (Sandbox Code Playgroud)
当bar为空时,LINQ返回空结果集.
问题:如何编写上述查询以便我可以收到此结果集:
Ali,NULL
Wall-e,NULL
Ellie,NULL
Run Code Online (Sandbox Code Playgroud)
Jep*_*sen 10
也许这就是你想要的:
var q = from f in foo.DefaultIfEmpty()
from b in bar.DefaultIfEmpty()
select new {f,b};
Run Code Online (Sandbox Code Playgroud)