LINQ右连接和左连接

弗朗西

我的任务是将一些t-sql查询重构为LINQ。简单连接和左外部连接很清楚。这是我的代码:

string[] leftouter = new string[] { "a", "b", "c", "d", "e" };
string[] inner     = new string[] { "a", "b" };

var q = from s1 in leftouter
        join s2 in inner on s1 equals s2 into j
        from sj in j.DefaultIfEmpty() 
        select string.Format("Outer: {0} Left: {1}", s1, sj)

输出为:

Outer: a Left: a  
Outer: b Left: b  
Outer: c Left:   
Outer: d Left:   
Outer: e Left:   

这是一个简单的左联接。现在,我想添加一个新的数据集:

string[] rightouter = new string[] { "c", "d", "e" };  

所需的输出是:

Outer: a Left: a Right:  
Outer: b Left: b Right:  
Outer: c Left:   Right: c
Outer: d Left:   Right: d
Outer: e Left:   Right: e

如何重新格式化LINQ以解决此输出?谢谢

坦率

试试这个:

string[] all = {"a", "b", "c", "d", "e"};
string[] left = {"a", "b"};
string[] right = {"c", "d", "e"};

var q = from innerItem in all
        join leftItem in left on innerItem equals leftItem into leftItems
        join rightItem in right on innerItem equals rightItem into rightItems
        from a in leftItems.DefaultIfEmpty()
        from b in rightItems.DefaultIfEmpty()
        select string.Format("Outer: {0} Left: {1} Right: {2}", innerItem, a, b);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SAS Enterprise:左连接和右连接的区别?

来自分类Dev

LINQ左连接在最后以空的右项目排序

来自分类Dev

右外连接到左外连接

来自分类Dev

中间SQL连接中的“左”和“右”表是什么?

来自分类Dev

中间SQL连接中的“左”和“右”表是什么?

来自分类Dev

Linq 使用左连接如何使用 order by 和 group by?

来自分类Dev

带有左连接和组的 SQL 到 LINQ

来自分类Dev

Linq Count左外连接

来自分类Dev

(My)SQL左/右/内连接的方向

来自分类Dev

(My)SQL左/右/内连接的方向

来自分类Dev

左连接与右表中的位置

来自分类Dev

Mysql左连接,条件在右表中

来自分类Dev

SQL 左连接 - 右表中的多行

来自分类Dev

在LINQ的右表中最多包含一行的左连接

来自分类Dev

MySQL左连接,根据左表最大ID从左表获取所有右表列和2列

来自分类Dev

sql嵌套连接内部和左连接

来自分类Dev

mysql左连接/右连接3个表

来自分类Dev

在 Pandas 条件连接中保留左/右连接逻辑

来自分类Dev

mysql左连接和搜索

来自分类Dev

如何在 IntelliJ 中显示连接左大括号和右大括号的线?

来自分类Dev

使用linq与组执行右外连接

来自分类Dev

LINQ与group by左连接并正确计数

来自分类Dev

LINQ-3个ObservableCollections的左连接

来自分类Dev

使用Linq左连接多个IList <>

来自分类Dev

LINQ与group by左连接并正确计数

来自分类Dev

Linq to Sql 与左连接不同,Lambda

来自分类Dev

左连接到左连接

来自分类Dev

左外连接使用从右表中排除记录的位置

来自分类Dev

SQL左连接-右表中的固定值