CompareOptions 枚举
本文提供了此 API 参考文档的补充说明。
CompareOptions 选项表示区分大小写,或必须忽略字符类型。
.NET 使用三种不同的排序方式:字词排序、字符串排序和序数排序。 字词排序会对字符串执行区分区域性的比较。 某些非字母字符可能分配有特殊的权重。 例如,连字符(“-”)分配的权重可能很小,所以“co-op”和“coop”在排序列表中会彼此相邻。 字符串排序类似于字词排序,只是没有特殊形式。 因此,所有非字母数字符号将位于所有字母数字字符之前。 序数排序根据字符串每个元素的 Unicode 值比较字符串。 请参阅排序权重表,以获取一组可下载的文本文件,其中包含有关 Windows 操作系统排序和比较操作中使用的字符权重的信息。 有关 Linux 和 macOS 的排序权重表,请参阅默认 Unicode 排序规则元素表。 Linux 和 macOS 上的特定排序权重表版本取决于系统上安装的 International Components for Unicode 库的版本。 有关 ICU 版本及它们所实现的 Unicode 版本的信息,请参阅下载 ICU。
StringSort
值只能用于 CompareInfo.Compare 和 CompareInfo.GetSortKey。 如果将 StringSort 值与 CompareInfo.IsPrefix、CompareInfo.IsSuffix、CompareInfo.IndexOf 或 CompareInfo.LastIndexOf 一起使用,将会引发 ArgumentException。
注意
如果可能,应使用接受 CompareOptions 值的字符串比较方法来指定预期的比较类型。 一般情况下,面向用户的比较最好是使用语言选项(使用当前区域性),而安全比较应指定或 Ordinal
或 OrdinalIgnoreCase
。
区分区域性的排序
注意
仅在 Linux 和 macOS 系统上运行的 .NET Core:C 和 Posix 区域性的排序规则行为始终区分大小写,因为这些区域性不使用预期的 Unicode 排序规则顺序。 建议使用除 C 或 Posix 以外的区域性执行区分区域性但不区分大小写的排序操作。