CompareOptions 枚举

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

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

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

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

注意

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

区分区域性的排序

注意

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