【问题标题】:How to perform LINQ left outer join using method syntax?如何使用方法语法执行 LINQ 左外连接?
【发布时间】:2014-06-14 00:03:42
【问题描述】:

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) 
  });

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

【问题讨论】:

标签: linq linq-to-objects


【解决方案1】:

我用过类似的东西

var q = (from a in db.Item1Set
         from b in db.Item2Set.Where(i2 => i2.Item1Id == a.Id).DefaultIfEmpty());

【讨论】:

  • (我追求的是方法语法)
猜你喜欢
  • 2010-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-10
  • 2019-11-08
  • 1970-01-01
  • 2013-05-26
相关资源
最近更新 更多