linq写左外连接,该怎么解决

linq写左外连接
如题:谢谢大家 以前写过忘记了
要简写方法 就是在list.join()这个函数里面写
------解决方案--------------------
引用:
用SelectMany的话


var result2 = products.GroupJoin(
categories,
p => p.CategoryId,
c => c.Id,
(p, c) => new {
p = p,
c = c
}
).SelectMany(
g => g.c.DefaultIfEmpty(),
(g, c) => new {
ProductId = g.p.Id,
CategoryName = (c == null) ? "Unkonwn Category" : c.Name,
ProductName = g.p.Name,
UnitPrice = g.p.UnitPrice
}
);

这个应该差不多。实在很麻烦,可读性很差的说。

这能算“简写”方式么?