如何使用方法语法执行LINQ左外连接?

时间:2014-06-13 13:22:03

标签: linq linq-to-objects

Microsoft有这个帮助页面用于执行左外连接,但是它在linq查询语法中。使用方法语法是什么等同于此?

http://msdn.microsoft.com/en-us/library/bb397895.aspx

例如,我有两个枚举:

class TA {string Name{get;}}
class TB {string Name{get;}}
Enumerable<TA> A; 
Enumerable<TB> B;

我想要的结果是:

var joined = 
  A.Select(a => new 
  { left = a, 
    right = B.FirstOrDefault(b => b.Name == a.Name) 
  });

这给了我所需要的只需选择和(有效)嵌套选择。也许这不是一个真正的左外连接...

1 个答案:

答案 0 :(得分:0)

我使用了像

这样的东西
var q = (from a in db.Item1Set
         from b in db.Item2Set.Where(i2 => i2.Item1Id == a.Id).DefaultIfEmpty());
相关问题