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




*以下这三种查询基本上都是等效查询(这也是使用分组联接实现内部联接的一例)
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 };

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

分类:
LINQ
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .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语句:使用策略模式优化代码结构