.NET 10 数字字符串排序:让 file10 排在 file9 后面
来源:dev.to — 2026-08-20
📋 概述
当作者展示生成的文件名时,.NET 10 的数字字符串排序给出了人们通常期望的顺序:file9.txt 在 file10.txt 之前。新的 CompareOptions.NumericOrdering 标志无需手写自然排序解析器就能处理数字串。但作者提醒:这看起来只是展示层的改动,实则不然——同一个比较器也决定两个字符串是否相等,这可能让 file2.txt 和 file02.txt 在集合或字典里静默合并。作者希望在跨应用复用该比较器之前,让契约的两个部分都可见。
🔑 核心要点
- CompareOptions.NumericOrdering 标志让 file10 排在 file9 之后,无需手写自然排序解析器。
- 序数比较从左到右读字符,file10 的第一个数字是 1,所以排到了 file9 的 9 前面。
- 同一个比较器也决定字符串相等性,可能让 file2.txt 和 file02.txt 在集合里静默合并。
- 作者强调在跨应用复用前,必须把「排序」和「相等性」两部分契约都考虑清楚。
💡 金句
同一个比较器也决定两个字符串是否相等——这可能在 set 或字典里悄悄吞掉你的文件。
👍 0
👎 0
← 返回 dev.to 首页