当一个集合为空时,获取笛卡尔积的LINQ查询是什么?

本文关键字:笛卡尔积 获取 LINQ 是什么 查询 一个 集合 | 更新日期: 2023-09-27 18:02:41

假设我有两个列表,其中一个为空:

List<string> foo = new List<string>(){ "Ali","wall-e","Ellie" };
List<string> bar = new List<string>();

得到2的笛卡尔积

var q = from f in foo
    from b in bar
    select new {f,b};

由于bar为空,LINQ返回一个空的结果集。

:我该如何编写上面的查询才能接收到这个结果集呢?

Ali,NULL
Wall-e,NULL
Ellie,NULL

当一个集合为空时,获取笛卡尔积的LINQ查询是什么?

也许这就是你想要的:

var q = from f in foo.DefaultIfEmpty()
    from b in bar.DefaultIfEmpty()
    select new {f,b};