You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#无法按预期字母序比较字符串,string.Compare结果异常如何解决

问题原因

你遇到的对比结果异常是因为string.Compare默认使用当前系统区域文化的排序规则,这类规则会对大小写、连字符等特殊字符做自定义加权处理,不会严格按照字符的Unicode/ASCII编码值逐位比较,和你需要的原始字符串字母序规则不匹配。

解决方法

使用StringComparison.Ordinal枚举参数指定采用序数比较规则,该规则会严格按照每个字符的编码值逐位对比,完全匹配你给出的排序预期:

string first = "-MmNI8oyb2QE_9V0WdaX";
string second = "-MmOAFDL9ZPD1gx4SjEU";
string third = "-MmPtIJ1LpFTRbweNWvD";
string fourth = "-MmPtd0IMuNIEYaPYPgZ";

// 按序数规则对比
string.Compare(third, fourth, StringComparison.Ordinal); // 输出-1,符合third < fourth的预期
string.Compare(second, third, StringComparison.Ordinal); // 输出-1
string.Compare(first, second, StringComparison.Ordinal); // 输出-1

如果需要不区分大小写的序数对比,可以替换为StringComparison.OrdinalIgnoreCase参数。


内容的提问来源于stack exchange,提问作者SHAI

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 23:54:05