本文提供了此 API 参考文档的补充说明。

CompareOptions 选项表示区分大小写,或必须忽略字符类型。

.NET 使用三种不同的排序方式:单词排序、字符串排序和序号排序。 字词排序会对字符串执行区分区域性的比较。 某些非字母字符可能为其分配了特殊权重。 例如,连字符(“-”)可能为其分配了非常小的权重,以便“coop”和“co-op”显示在排序列表中彼此旁边。 字符串排序类似于单词排序,只是没有特殊情况。 因此,所有非字母数字符号都位于所有字母数字字符之前。 序数排序根据字符串每个元素的 Unicode 值比较字符串。 有关一组可下载的文本文件,其中包含用于 Windows 操作系统排序和比较操作的字符权重信息,请参阅 排序权重表。 有关 Linux 和 macOS 的排序权重表,请参阅 默认 Unicode 排序规则元素表。 Linux 和 macOS 上的排序权重表的特定版本取决于系统上安装的 Unicode 库的国际组件 版本。 有关 ICU 版本及其实现的 Unicode 版本的信息,请参阅 下载 ICU

该值 StringSort 只能用于 CompareInfo.CompareCompareInfo.GetSortKey。 如果将 StringSort 值与 ArgumentExceptionCompareInfo.IsPrefixCompareInfo.IsSuffixCompareInfo.IndexOf 一起使用,将会引发 CompareInfo.LastIndexOf

注释

如果可能,应使用接受值的 CompareOptions 字符串比较方法来指定预期的比较类型。 一般情况下,面向用户的比较最好是使用语言选项(使用当前区域性),而安全比较应指定或 OrdinalOrdinalIgnoreCase

区分区域性的排序

注释

仅在 Linux 和 macOS 系统上运行的 .NET Core:C 和 Posix 区域性的排序规则行为始终区分大小写,因为这些区域性不使用预期的 Unicode 排序规则顺序。 建议使用除 C 或 Posix 以外的区域性执行区分区域性但不区分大小写的排序操作。