GroupJoin 与 Join 一样,是用于组合多个数据源的 LINQ 方法。但是,GroupJoin 生成的结果结构与 Join 不同。
Join:
<code>from p in Parent join c in Child on p.Id equals c.Id select new { p.Value, c.ChildValue }</code>
GroupJoin:
<code>from p in Parent join c in Child on p.Id equals c.Id into g select new { Parent = p, Children = g }</code>
Join:
<code>Parent.Join(Child, p => p.Id, c => c.Id, (p, c) => new { p.Value, c.ChildValue })</code>
GroupJoin:
<code>Parent.GroupJoin(Child, p => p.Id, c => c.Id, (p, c) => new { Parent = p, Children = c })</code>
<code>from p in Parent join c in Child on p.Id equals c.Id into g from c in g.DefaultIfEmpty() select new { Parent = p.Value, Child = c?.ChildValue }</code>
<code>from id in ids join p in parents on id equals p.Id select p</code>
以上是LINQ 的 Join 和 GroupJoin 方法有什么区别?的详细内容。更多信息请关注PHP中文网其他相关文章!