C#怎么使用LINQ OrderBy排序 C#如何用LINQ对集合按多个字段进行升序降序排列【语法】

OrderBy必须唯一且首置,后续字段用ThenBy/ThenByDescending链式调用;null默认排最前(升序)或最后(降序);延迟执行,避免重复ToList。OrderBy 和 ThenBy 怎么连用才对多个字段排序不能只靠 OrderBy,它会覆盖前一次排序结果。必须用 OrderBy + ThenBy(升序)或 ThenByDescending(降序)链式调用,这是最常踩的坑------写成两个 OrderBy 等于只生效最后一个。OrderBy 是主排序,必须放在最前面,且只能出现一次后续每个附加字段都用 ThenBy 或 ThenByDescending,顺序即优先级顺序如果第一个字段值相同,才看第二个字段;第二个也相同,才看第三个......以此类推不支持在同一个 OrderBy 里混写升/降序,必须拆到不同方法里示例:list.OrderBy(x => x.Age).ThenByDescending(x => x.Name).ThenBy(x => x.Id) 表示:先按年龄升序,年龄相同时按姓名降序,姓名也相同时再按 Id 升序。降序字段怎么插在中间而不是最后很多人以为降序只能放末尾,其实只要用 ThenByDescending,它可以出现在链中任意位置,不影响后续升序逻辑。关键不是"位置",而是"谁调用谁负责当前字段的排序方向"。错误写法:OrderByDescending(x => x.Name).ThenBy(x => x.Age) ------ 这是先按姓名降序,再按年龄升序,但主排序字段变了正确写法:OrderBy(x => x.Status).ThenByDescending(x => x.CreatedTime).ThenBy(x => x.Id) ------ 状态升序为主,创建时间降序为次,Id 升序为第三级注意:没有 OrderByAscending,升序就是默认行为,直接用 OrderBy 或 ThenByOrderBy 传入 null 值会怎样如果排序字段可能为 null(比如引用类型属性),OrderBy 默认把 null 排在最前面(升序)或最后面(降序),这在分页或 UI 展示时容易出意料之外的结果。 AI智研社 AI智研社是一个专注于人工智能领域的综合性平台

相关推荐
梦想平凡34 分钟前
百游棋牌源代码开发搭建教程(十):隔离部署、备份恢复与双端验收
java·前端·javascript·数据库·源代码管理
Ivanqhz1 小时前
MLIR OpBuilder
开发语言·python·mlir
xcLeigh1 小时前
让大模型长出手脚,自己写SQL查数据库(Function Calling初探)
数据库·人工智能·sql·时序数据库·timechoai
yume_sibai2 小时前
06-Rust Web 开发实战(Axum 框架 + 数据库 + JWT 认证 + 中间件 + 部署)
前端·数据库·rust
威联通安全存储2 小时前
TS-h2287XU-RP 在家电制造总装与质检数据场景的部署
python·制造
AugustRed3 小时前
Neo4j 图数据库原理 + 应用场景简单介绍
数据库·neo4j
Gl�ria3 小时前
Redis 高可用架构对比
数据库·redis
泡泡鱼(敲代码中)3 小时前
Python 字符串 str 完整学习笔记
python·学习
troy1283 小时前
Python 基础语法(八):Web 后端开发、数据分析与可视化、网络爬虫、人工智能 / 大模型应用
前端·python·数据分析
IpdataCloud3 小时前
高可用的IP数据接口平台有哪些?从可用性、P99延迟到离线部署的评估框架(含代码)
数据库·tcp/ip·ip