System.StringComparer 类

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

派生自 StringComparer 类的对象体现了基于字符串的比较、相等性和哈希代码作,这些操作同时考虑大小写和区域性特定的比较规则。 可以使用 StringComparer 该类创建特定于类型的比较来对泛型集合中的元素进行排序。 诸如HashtableDictionary<TKey,TValue>SortedListSortedList<TKey,TValue>等类使用StringComparer类进行排序。

StringComparer 类表示的比较操作被定义为区分大小写或不区分大小写,并使用单词(区分区域性)或序数(不区分区域性)比较规则。 有关单词和序号比较规则的详细信息,请参阅 System.Globalization.CompareOptions

注释

可以下载 默认 Unicode 排序规则元素表(排序权重表的最新版本)。 排序权重表的特定版本取决于系统上安装的 Unicode 库的国际组件 版本。 有关 ICU 版本及其实现的 Unicode 版本的信息,请参阅 下载 ICU

对于 Windows 上的 .NET Framework,可以下载 排序权重表,一组文本文件,其中包含有关排序和比较作中使用的字符权重的信息。

实现的属性

由于看似矛盾,你可能对如何使用 StringComparer 类属性感到困惑。 类 StringComparer 声明 abstractMustInherit 在 Visual Basic 中),这意味着其成员只能在派生自 StringComparer 该类的类的对象上调用。 矛盾在于,类的每个属性 StringComparer 都声明 staticShared 在 Visual Basic 中),这意味着可以在不首先创建派生类的情况下调用该属性。

可以直接调用属性 StringComparer ,因为每个属性实际上返回从 StringComparer 该类派生的匿名类的实例。 因此,每个属性值的类型是 StringComparer匿名类的基类,而不是匿名类本身的类型。 每个 StringComparer 类属性返回一个 StringComparer 支持预定义事例和比较规则的对象。