Classe System.StringComparer

Observação

Este artigo fornece observações complementares à documentação de referência para esta API.

Um objeto derivado da classe StringComparer incorpora operações de comparação, igualdade e código hash com base em strings que levam em conta as regras de comparação específicas de maiúsculas e minúsculas e as culturais. Você pode usar a StringComparer classe para criar uma comparação específica do tipo para classificar os elementos em uma coleção genérica. Classes como Hashtable, Dictionary<TKey,TValue>, SortedList, e SortedList<TKey,TValue> usam a StringComparer classe para fins de classificação.

Uma operação de comparação representada pela classe StringComparer é definida como sensível ou insensível a maiúsculas/minúsculas, e utiliza regras de comparação por palavras (sensíveis à cultura) ou ordinais (insensíveis à cultura). Para obter mais informações sobre regras de comparação de palavras e ordinais, consulte System.Globalization.CompareOptions.

Observação

Você pode baixar a tabela de elementos de agrupamento Unicode padrão, a versão mais recente da tabela de peso de classificação. A versão específica da tabela de peso de classificação depende da versão dos componentes internacionais para bibliotecas Unicode instalados no sistema. Para obter informações sobre as versões do ICU e as versões Unicode que elas implementam, consulte Downloading ICU.

Para o .NET Framework no Windows, você pode baixar as Tabelas de Peso de Classificação, um conjunto de arquivos de texto que contêm informações sobre os pesos de caracteres usados em operações de classificação e comparação.

Propriedades implementadas

Você pode estar confuso sobre como usar as StringComparer propriedades de classe devido a uma aparente contradição. A StringComparer classe é declarada abstract (MustInherit no Visual Basic), o que significa que seus membros podem ser invocados somente em um objeto de uma classe derivada da StringComparer classe. A contradição é que cada propriedade da classe é declarada StringComparerstatic (Shared no Visual Basic), o que significa que a propriedade pode ser invocada sem primeiro criar uma classe derivada.

Você pode chamar uma StringComparer propriedade diretamente porque cada propriedade realmente retorna uma instância de uma classe anônima que é derivada da StringComparer classe. Consequentemente, o tipo de cada valor de propriedade é StringComparer, que é a classe base da classe anônima, não o tipo da classe anônima em si. Cada StringComparer propriedade de classe retorna um StringComparer objeto que oferece suporte a regras predefinidas de comparação e de caixa.