Informações
O tópico solicitado está sendo mostrado abaixo. No entanto, este tópico não está incluído nesta biblioteca.

Método String.Compare (String, Int32, String, Int32, Int32, CultureInfo, CompareOptions)

Compara substrings de dois objetos String especificados usando as opções de comparação especificadas, informações específicas de cultura para influenciar a comparação de objetos e retorna um número inteiro que indica a relação entre as duas subseqüências uns aos outros na ordem de classificação.

Namespace:  System
Assembly:  mscorlib (em mscorlib.dll)

public static int Compare(
	string strA,
	int indexA,
	string strB,
	int indexB,
	int length,
	CultureInfo culture,
	CompareOptions options
)

Parâmetros

strA
Tipo: System.String
A primeira cadeia de caracteres a ser usada na comparação.
indexA
Tipo: System.Int32
A posição inicial da subcadeia de caracteres dentro de strA.
strB
Tipo: System.String
A segunda cadeia de caracteres a ser usada na comparação.
indexB
Tipo: System.Int32
A posição inicial da subcadeia de caracteres dentro de strB.
length
Tipo: System.Int32
O número máximo de caracteres nas subcadeias de caracteres a serem comparadas.
culture
Tipo: System.Globalization.CultureInfo
Um objeto que fornece informações específicas à cultura específica de comparação.
options
Tipo: System.Globalization.CompareOptions
Opções a serem usadas ao executar a comparação (como ignorar maiúsculas ou símbolos).

Valor de retorno

Tipo: System.Int32
Um inteiro que indica a relação entre as duas léxica subcadeia de caracteres, como mostra a tabela a seguir.

Valor

Condição

Menor que zero

A subcadeia de caracteres em strA é menor que a subcadeia de caracteres em strB.

Zero

A subcadeia de caracteres forem iguais ou length é zero.

Maior que zero

A subcadeia de caracteres em strA é maior que a subcadeia de caracteres em strB.

ExceçãoCondição
ArgumentException

options não é um valor CompareOptions.

ArgumentOutOfRangeException

indexA é maior que strA.Length.

-ou-

indexB é maior que strB.Length.

-ou-

indexA, indexB ou length é negativo.

-ou-

strA ou strB são null, e length for maior que zero.

ArgumentNullException

culture é null.

A subcadeia de caracteres para comparar o início em strA na posição indexA e em strB na posição indexB. O comprimento da primeira subcadeia de caracteres é o comprimento de strA menos indexA. O comprimento da segunda subcadeia de caracteres é o comprimento de strB menos indexB.

O número de caracteres a serem comparados é o menor dos tamanhos das subcadeias de caracteres e length. Os parâmetros indexA, indexB e length devem ser não negativos.

A comparação usa o parâmetro de culture para obter informações específicas à cultura específica, como regras de uso de maiúsculas e minúsculas e ordem alfabética de caracteres individuais. Por exemplo, uma cultura específica pode especificar que algumas combinações de caracteres sejam tratadas como um único caractere, que os caracteres maiúsculos e minúsculos sejam comparados de uma maneira específica, ou que a ordem de classificação de um caractere depende de caracteres que precedem o ou seguem.

Observação de cuidadoCuidado

O método de Compare(String, Int32, String, Int32, Int32, CultureInfo, CompareOptions) é criado para uso na classificação ou operações de alfabetização. Não deve ser usado quando o objetivo principal da chamada de método é determinar se duas subcadeia de caracteres são equivalentes (isto é, quando a finalidade da chamada de método for testada para um valor de retorno zero). Para determinar se duas cadeias de caracteres são equivalentes, chame o método Equals.

O strA e strB pode ser null. Por definição, qualquer cadeia de caracteres, incluindo String.Empty, compara maior do que uma referência nula, e duas referências nulas são iguais entre si.

A comparação pode ser especificada pelo parâmetro de options , que consiste em um ou mais membros de enumeração de System.Globalization.CompareOptions . No entanto, como o objetivo desse método é realizar uma comparação de cadeia de caracteres com diferenciação, os valores de CompareOptions.Ordinal e de CompareOptions.OrdinalIgnoreCase não têm nenhum efeito.

A comparação termina quando uma desigualdade é descoberta ou ambas as subcadeias de caracteres são comparadas. No entanto, se as duas cadeias de caracteres são iguais ao final de uma cadeia de caracteres, e a outra cadeia de caracteres tem os caracteres restantes, a cadeia de caracteres com os caracteres restantes é considerado maior. O valor de retorno é o resultado da última comparação realizada.

Observações para chamadores

Entre conjuntos de caracteres estão caracteres ignoráveis. O método de Compare(String, Int32, String, Int32, Int32, CultureInfo, CompareOptions) não considera esses caracteres quando o executa uma comparação ou linguística com caracteres. Para reconhecer caracteres ignorable na comparação, forneça um valor de CompareOptions.Ordinal ou de CompareOptions.OrdinalIgnoreCase para o parâmetro de options .

O exemplo a seguir usa o método de Compare(String, Int32, String, Int32, Int32, CultureInfo, CompareOptions) para comparar os sobrenomes de dois pessoas. Listar-los em ordem alfabética.


using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string name1 = "Jack Smith";
      string name2 = "John Doe";

      // Get position of space character.
      int index1 = name1.IndexOf(" ");
      index1 = index1 < 0 ? 0 : index1--;

      int index2 = name2.IndexOf(" ");
      index1 = index1 < 0 ? 0 : index1--;

      int length = Math.Max(name1.Length, name2.Length);

      Console.WriteLine("Sorted alphabetically by last name:");
      if (String.Compare(name1, index1, name2, index2, length, 
                         new CultureInfo("en-US"), CompareOptions.IgnoreCase) < 0)
         Console.WriteLine("{0}\n{1}", name1, name2); 
      else
         Console.WriteLine("{0}\n{1}", name2, name1); 
   }
}
// The example displays the following output:
//       Sorted alphabetically by last name:
//       John Doe
//       Jack Smith


.NET Framework

Com suporte em: 4.5.2, 4.5.1, 4.5, 4, 3.5 SP1, 3.0 SP2, 2.0 SP2

.NET Framework Client Profile

Com suporte em: 4, 3.5 SP1

.NET para aplicativos do Windows Phone

Com suporte em: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Função Server Core sem suporte), Windows Server 2008 R2 (Função Server Core com suporte com o SP1 ou posterior, Itanium sem suporte)

O .NET Framework não oferece suporte a todas as versões de cada plataforma. Para obter uma lista das versões com suporte, consulte Requisitos do sistema do .NET Framework.

Contribuições da comunidade

Mostrar:
© 2014 Microsoft