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智研社是一个专注于人工智能领域的综合性平台
相关推荐
疯狂成瘾者2 分钟前
Java 常见集合方法web守墓人4 分钟前
【python】uv解决依赖安装缓慢的问题这个DBA有点耶5 分钟前
导个数据中文全变问号?字符集这事儿真没那么简单asdzx675 分钟前
使用 Python 精准操控 Word 字体:获取与替换方案胡耀超6 分钟前
固件逆向:从一坨二进制,到一个可以被解释的系统wuqingshun31415933 分钟前
MYSQL中如果发生死锁应该如何解决?DO_Community1 小时前
Weaviate 托管数据库现已在 DigitalOcean 上开放公测报错小能手1 小时前
索引常见面试题sycmancia1 小时前
Qt——多线程中的信号与槽(二)Database_Cool_1 小时前
时序数据库选型:阿里云 Lindorm 时序引擎 vs InfluxDB 全维度对比