Что такое запрос LINQ, чтобы получить декартово произведение, даже если один набор пуст?



Представьте, что у меня есть 2 списка, и один из них пуст:



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
586   1  

1 ответ:

Может быть, это то, что вы хотите:

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

Comments

    Ничего не найдено.