gpt4 book ai didi

c# - 如何使用 linq 扩展方法执行左外连接

转载 作者:IT王子 更新时间:2023-10-29 03:28:51 24 4
gpt4 key购买 nike

假设我有一个左外连接:

from f in Foo
join b in Bar on f.Foo_Id equals b.Foo_Id into g
from result in g.DefaultIfEmpty()
select new { Foo = f, Bar = result }

如何使用扩展方法来表达相同的任务?例如

Foo.GroupJoin(Bar, f => f.Foo_Id, b => b.Foo_Id, (f,b) => ???)
.Select(???)

最佳答案

对于表 BarFoo.Foo _Id = Bar.Foo _Id 上的表 Foo 的(左外)连接lambda 表示法:

var qry = Foo.GroupJoin(
Bar,
foo => foo.Foo_Id,
bar => bar.Foo_Id,
(x,y) => new { Foo = x, Bars = y })
.SelectMany(
x => x.Bars.DefaultIfEmpty(),
(x,y) => new { Foo=x.Foo, Bar=y});

关于c# - 如何使用 linq 扩展方法执行左外连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/584820/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com