LinQ Coding -- (6)(Join之分组联接)

Join 子句有三种最常见的联接类型:内部联接,分组联接,左外部联接
本次介绍:分组联接

       分组联接:见名知意,它本质上是一个对象数组序列。说白了就是结果序列会组织为多个组形式数据进行返回。
即可术语描述的话,就是会产生一个分层的结果序列,此序列拿第一个集合中的每个元素与第二个集合中的一组相关元素进行配对,如果找不到就返回空数组。那基本上分组联接和内部联接基本差不多。 另外就是在分组联接中没有等效的关系。
* 分组联接非常适合于使用 LINQ to XML 来创建 XML。

 public class JoinUsingLinqPartSecInto : Interface
    
{
        
Interface Members
    }

*以下这三种查询基本上都是等效查询(这也是使用分组联接实现内部联接的一例)
querythree
使用不带 into 子句的 join 子句执行内部联接所获得的结果集。

 1 var queryone = from person in people
 2                        join pet in pets
 3                            on person
 4                            equals pet.Owner
 5                            into nonameList
 6                        select new { OwnerName = person.FirstName, Pets = nonameList };
 7
 8            var querytwo = from person in people
 9                        join pet in pets
10                            on person
11                                equals pet.Owner
12                                    into nonnamelist
13                        from subpet in nonnamelist
14                        select new { OwnerName = person.FirstName, PetName = subpet.Name };
15
16            var querythree = from person in people
17                         join pet in pets on person equals pet.Owner
18                         select new { OwnerName = person.FirstName, PetName = pet.Name };

posted on   秋天  阅读(413)  评论(0编辑  收藏  举报

编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构

导航

< 2008年3月 >
24 25 26 27 28 29 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示