2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

LINQ 的分组聚合技术

  • 2008-01-07
  • 本文字数:558 字

    阅读完需:约 2 分钟

很大程度上来讲,LINQ 的工作方式很像 SQL。查询源定义、join、select 和 where 子句都是相当标准的,而 Group/By/Into 子句则正是我们这里要仔细说明的。SQL 总是返回矩阵式数据集,与它不同的是,LINQ 具备了返回层次化数据的能力,这也给它自己带来了更多新的挑战。

举一个例子,将客户按照所属 country 和 city 进行分组查询,在 SQL 中,可能会通过在客户端手动分组或者执行 1+N+(N*M)次查询来实现,一个查询用来获取所有的国家,一个查询用来获取每个国家的所有城市,然后再逐个查询出每个国家的每个城市下所有的客户列表。

而在 LINQ 中,它可以通过一个带有一系列子查询的查询语句一次性完成,当然,这也增加了查询的复杂度。Mitsu 演示如下:

<p>var q =<br></br> from c in db.Customers<br></br> group c by c.Country into g<br></br> select new { <br></br> g.Key, <br></br> Count = g.Count(), <br></br> SubGroups = from c in g <br></br> group c by c.City into g2<br></br> select g2};</p>

为说明 LINQ 框架的灵活性,Mitsu 将它简化到了仅一行:

<p>var result = customers.GroupByMany(c => c.Country, c => c.City);</p>

Mitsu 用一种能适用于任何 LINQ 查询的方式实现了它。你可以在他的博客上查看源码以及关于它是如何工作的解释文章。查看英文原文 LINQ Grouping Techniques

2008-01-07 23:442118
用户头像

发布了 90 篇内容, 共 15.3 次阅读, 收获喜欢 11 次。

关注

评论

发布
暂无评论
发现更多内容

商城小程序项目实现监控的可观测性最佳实践

观测云

小程序

Python 和 Go 的基础了解

Liam

Python Go 编程 程序员 后端

机器学习:智能时代的核心引擎

不在线第一只蜗牛

人工智能 机器学习

英特尔携手开发者,以全新OpenVINO™ 2024.0版本引领AI加速技术革命

E科讯

时序数据库IoTDB:功能详解与行业应用

Apache IoTDB

YYDS,只用几条命令轻松搭建自己的项目管理平台jira

霍格沃兹测试开发学社

智达方通全面预算管理系统,为企业带来更可靠的交付

智达方通

全面预算管理 全面预算管理系统

Solana链狙击机器人:交易者的新宠

开发丨飞机丨 @aivenli

深入解析以太坊Dencun升级:提升网络性能与安全的关键举措

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

一文熟悉PolarDB-PG 分区表核心特性

阿里云数据库开源

数据库 阿里云 polarDB PolarDB-PG

Netflix微服务经验教训

俞凡

微服务 最佳实践 netflix 大厂实践

将提交记录生成二维码,扫码即可查看填写内容

草料二维码

二维码 草料二维码

ETL中RESTful API 组件的用法

RestCloud

ETL 数据集成 RESTful API

数据要素×工业制造:光纤通信企业携手奇点云,攻克“国产替代”迁移难关

奇点云

奇点云 数据要素 工业制造 光纤通信

网心科技入选2023中国ToB行业影响力价值榜

网心科技

容器镜像加速指南:探索 Kubernetes 缓存最佳实践

不在线第一只蜗牛

Kubernetes 容器化 集群

2024南京国际智能机器人展览会

AIOTE智博会

机器人展 智能机器人展

拓展AI边界:去中心化人工智能的应用场景和主要项目盘点

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

Selenium报错元素不可交互,该如何解决?

霍格沃兹测试开发学社

一口气搞懂分库分表 12 种分片算法,大厂都在用

程序员小富

Java 分库分表 spring-boot

lilishop开源版本window一键启动

小黄鱼

Spring Boot 开源商城 bat启动 lilishop

利用Python和数据获取技术实现智能旅游情报系统

阿Q说代码

Python 后端 数据获取

从数据存储的演迁,看芯赛云分布式存储应用

科技热闻

深圳站回顾|隐语最新功能、隐私计算硬核技术、数据要素实践干货全记录(附演讲视频)

隐语SecretFlow

云主机有什么用?看看它的多功能用途

一只扑棱蛾子

云主机

LINQ的分组聚合技术_.NET_Jonathan Allen_InfoQ精选文章