AICon 北京站 Keynote 亮点揭秘,想了解 Agent 智能体来就对了! 了解详情
写点什么

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:442132
用户头像

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

关注

评论

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

海信三筒洗衣机全系配置及价格公布,疯狂宠粉!科技创新引领产业升级

新消费日报

阜博集团完成对 PEX 的收购

财见

天润融通AI Agent重塑零售连锁行业客户服务竞争力

天润融通

Typescript AI 通义灵码 VSCode插件安装与功能详解

阿里云云效

typescript

从训练到推理丨焱融存储蝉联 IDC SDS 文件市场增速第一

焱融科技

文件存储 软件定义存储 AI存储 全闪存 IDC报告

如何使用 Databend Cloud 化简大数据架构?| Data Infra NO.24 回顾

Databend

CAD中的草图绘制功能

极客天地

字节跳动开源 Godel-Rescheduler:适用于云原生系统的全局最优重调度框架

字节跳动开源

云原生 全局最优调度 多策略协同 高吞吐执行 生产级稳定性

使用 Node.js、Express 和 React 构建强大的 API

数据追梦人

域名转移会影响域名解析吗?

国科云

「高盛」最新人形机器人研报:主流人形机器人公司梳理和商业化瓶颈(附报告)

机器人头条

科技 大模型 人形机器人 具身智能

阿里云 Elasticsearch Serverless 检索增强型8.17版免费邀测!

阿里云大数据AI技术

大数据 elasticsearch 阿里云 检索 serveless

优化 Apache 日志记录的 5 个最佳实践

运维有小邓

日志管理系统 Apache 日志

如何合理规划Elasticsearch的索引|得物技术

得物技术

索引 Elastic Search 容量设计

线上线下畅玩无阻,陪玩系统小程序源码是怎样做到的?

DUOKE七七

php vue.js MySQL uniapp

用 SQL 还是 NoSQL?Apipost 的回答是:两个都要!

数据追梦人

CST联合Isight进行天线DOE设计

思茂信息

cst cst电磁仿真 CST Studio Suite

Cision宣布获得2.5亿美元新资金

财见

代码成为 "乐高积木"——AI 时代的开发革命

代码制造者

#AI编程

CodeBuddy 焕新升级: 软件开发智能体 Craft 重磅发布

CodeBuddy

腾讯云 腾讯 AI编程 CodeBuddy

Typescript AI 通义灵码 VSCode插件安装与功能详解

阿里巴巴云原生

LLM实现text2SQL实战总结

数由科技

人工智能 设计原则 LLM text2sql

ERP系统生产模式(ATO、MTS、MTO、ETO、CTO)你了解多少?!

积木链小链

数字化 ERP 智能制造 生产模式

凌晨 GPT - 4.1霸气登场,性能狂飙还降价

GPU算力

openai ChatGPT ChatGPT4 LLM模型 #大语言模型

【HarmonyOS 5】如何开启DevEco Studio热更新调试应用模式

GeorgeGcs

调试 热更新

程序员业务能力进阶:技术与业务的深度融合

代码制造者

低代码 #程序员

前端热更新:无声引擎驱动中国互联网的数字化转型

xuyinyin

MCP Server 开发实战 | 大模型无缝对接 Grafana

阿里巴巴云原生

阿里云 云原生 Grafana

CAD缩放后有符号不显示怎么办

极客天地

CAD如何利用两点间的中点解决镜像中心线问题

极客天地

API 接口开发与合理利用:构建高效、安全、可维护的数字桥梁

Noah

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