新闻中心
.NET如何使用LINQ对集合进行分组和排序
答案:在.NET中,使用LINQ的GroupBy可按键分组数据,结合OrderBy、ThenBy可对分组及组内元素进行单级或多级排序,通过Select投影可实现结构化输出,使集合操作简洁高效。

在 .NET 中,使用 LINQ(Language Integrated Query)可以非常方便地对集合进行分组和排序。通过 GroupBy 和 OrderBy / ThenBy 等方法,你可以以声明式方式处理数据,代码简洁且易读。
使用 GroupBy 进行分组
GroupBy 方法根据指定的键将集合中的元素分组,返回一个 IGrouping
假设有如下 Product 类:
public class Product
{
public string Name { get; set; }
public string Category { get; set; }
public decimal Price { get; set; }
}
创建一个产品列表并按 Category 分组:
var products = new List<Product>
{
new Product { Name = "Apple", Category = "Fruit", Price = 1.2m },
new Product { Name = "Banana", Category = "Fruit", Price = 0.8m },
new Product { Name = "Carrot", Category = "Vegetable", Price = 0.5m },
new Product { Name = "Broccoli", Category = "Vegetable", Price = 1.0m }
};
<p>var grouped = products.GroupBy(p => p.Category);</p>
<div class="aritcle_card">
<a class="aritcle_card_img" href="/ai/1852">
<img src="https://img.php.cn/upload/ai_manual/000/969/633/68b6c77ba67c5501.png" alt="Zyro AI Background Remover">
</a>
<div class="aritcle_card_info">
<a href="/ai/1852">Zyro AI Background Remover</a>
<p>Zyro推出的AI图片背景移除工具</p>
<div class="">
<img src="/static/images/card_xiazai.png" alt="Zyro AI Background Remover">
<span>145</span>
</div>
</div>
<a href="/ai/1852" class="aritcle_card_btn">
<span>查看详情</span>
<img src="/static/images/cardxiayige-3.png" alt="Zyro AI Background Remover">
</a>
</div>
<p>foreach (var group in grouped)
{
Console.WriteLine($"Category: {group.Key}");
foreach (var product in group)
{
Console.WriteLine($" - {product.Name}: ${product.Price}");
}
}
结合 OrderBy 对分组结果排序
你可以在分组后对组本身或组内元素进行排序。
示例:按类别分组,并按价格升序排列每组内的产品
var groupedAndSorted = products
.GroupBy(p => p.Category)
.Select(g => new
{
Category = g.Key,
Products = g.OrderBy(p => p.Price).ToList()
})
.OrderBy(x => x.Category); // 按类别名称排序分组
<p>foreach (var group in groupedAndSorted)
{
Console.WriteLine($"Category: {group.Category}");
foreach (var product in group.Products)
{
Console.WriteLine($" - {product.Name}: ${product.Price}");
}
}
多级排序与分组
你可以实现更复杂的逻辑,比如先按类别分组,再在每组内按价格降序、名称升序排列。
示例:组内多级排序
var complexSort = products
.GroupBy(p => p.Category)
.Select(g => new
{
Category = g.Key,
Products = g
.OrderByDescending(p => p.Price)
.ThenBy(p => p.Name)
.ToList()
});
<p>// 输出结果
foreach (var group in complexSort)
{
Console.WriteLine($"Category: {group.Category}");
foreach (var product in group.Products)
{
Console.WriteLine($" - {product.Name} (${product.Price})");
}
}
基本上就这些。LINQ 提供了强大而直观的语法来处理集合的分组与排序,合理使用 GroupBy、OrderBy、ThenBy 等方法,可以让数据操作变得清晰高效。注意在查询中保持可读性,复杂逻辑可拆分为多个步骤或
封装为方法。
以上就是.NET如何使用LINQ对集合进行分组和排序的详细内容,更多请关注其它相关文章!
# 相关文章
# 安徽什么是营销推广方法
# 坪山seo联系方式
# 建设网站之前需要做什么
# 哈尔滨网站建设免费咨询
# 重庆seo行业服务
# 开展营销宣传推广
# 滁州谷歌seo方案招聘
# 即墨民宿网站建设
# 惠水关键词排名
# 智能网络营销推广价格表
# 解决问题
# 中文网
# .net
# 多个
# 每组
# 并按
# 数据结构
# 如何使用
# 升序
# 你可以
# 排列
# apple
# app
# go
# linq
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
《刺客信条4:黑旗》重制版新细节曝光:无缝加载 地图更细致!
Safari怎么安装扩展程序 浏览器插件安装与管理方法【详解】
Golang并发任务中错误如何聚合_Golang goroutine error收集方式
Yandex搜索引擎官方地址 俄罗斯网络世界的主要入口
J*aScript设计模式实践_j*ascript代码优化
C++如何操作大型数据集_使用C++流式处理(Streaming)技术避免一次性加载大文件
Win11文件资源管理器卡顿怎么修 Win11重置资源管理器进程优化响应速度【修复方法】
高德地图沿途添加点失败如何解决 高德多点规划方法
PHP中获取MongoDB服务器运行时间(Uptime)的专业指南
蛙漫正版漫画平台入口_蛙漫免费阅读全站漫画资源
绝地鸭卫平a核爆刀流玩法攻略
红果短剧网页版官网入口 官方最新网址发布
Win11蓝牙耳机断连怎么解决 Win11蓝牙设置重新配对与驱动更新【技巧】
J*a编写用户注册与登录功能_掌握字符串与验证逻辑
菜鸟取件码是什么怎么查 最全查询渠道汇总
提升Kafka消费者健壮性:会话超时处理与消息处理语义
解决Flask中Quill编辑器内容提交失败及TypeError的指南
抖音未来赚钱的新趋势 2025年值得关注的变现风口分析
Excel组合图表怎么做 Excel创建柱状图与折线组合图教程【图表】
新手怎么开始学化妆 零基础化妆入门教程
Archive of Our Own官网直达 AO3最新可用地址一览
qq游戏跨平台入口_qq游戏多设备同步登录
星露谷物语官网入口 星露谷物语游戏官网入口
CSS自定义字体样式被系统字体替换怎么办_font-face方式指定font-display控制渲染策略
C++如何实现一个装饰器模式_C++设计模式之动态地给对象添加额外职责
漫蛙漫画网页端入口 漫蛙2官方正版漫画站点
wps文字怎么插入目录并自动更新_wps文字如何插入目录并自动更新方法
优化大型XML文件解析:基于Python流式处理的内存高效方案
在python-socketio事件处理器中安全访问Flask应用上下文
vivo云服务网页版登录 怎么登录vivo云服务网页版
微博网页版主页入口 微博官方网站免登录访问
实现全屏滚动与导航点:专业教程
《GTA6》开发画面疑似泄露!这次可不是AI了
Adobe PDF表单中利用J*aScript解析与格式化日期组件的教程
Fabric Mod开发:在1.19.3+版本中正确添加自定义物品并管理物品组
实现分段式页面滚动导航:CSS与J*aScript教程
python3时间如何用calendar输出?
怎样使用“本地安全策略”提升Windows安全性_Secpol.msc配置指南【高手】
神庙逃亡小游戏在线玩 神庙逃亡小游戏入口
J*a TimerTask中HashMap意外清空的深层原因与解决方案
sublime如何配置Python开发环境_将sublime打造成轻量级Python IDE
谷歌浏览器怎么给标签页静音_Chrome标签静音快捷操作
Golang如何实现状态模式管理对象状态_Golang State模式实现技巧
拼多多视频播放卡顿如何处理 拼多多视频播放优化技巧
漫蛙漫画官方首页 漫蛙2漫画在线阅读入口
离线运行Go语言之旅:本地部署与GOPATH配置指南
如何在 Excel Online 和 Google 表格中更改日期格式
Steam官网入口直达 Steam注册及登录步骤
Django表单提交验证失败后保持字段值不刷新
如何将HTML表格多行数据保存到Google Sheets


2025-11-16
浏览次数:次
返回列表