c# – LINQ右连接和左连接
发布时间:2020-12-16 02:04:07 所属栏目:百科 来源:网络整理
导读:我的任务是将一些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
我的任务是将一些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","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","e"}; string[] left = {"a","b"}; string[] right = {"c","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); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |