Compare Método (String, String, Boolean, CultureInfo)
Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

String.Compare (Método) (String, String, Boolean, CultureInfo)

 

Compara dos objetos String especificados, pasando por alto o teniendo en cuenta el uso de mayúsculas y minúsculas, usa información específica de la referencia cultural para influir en la comparación y devuelve un entero que indica su posición relativa en el criterio de ordenación.

Espacio de nombres:   System
Ensamblado:  mscorlib (en mscorlib.dll)

public static int Compare(
	string strA,
	string strB,
	bool ignoreCase,
	CultureInfo culture
)

Parámetros

strA

Primera cadena que se va a comparar.

strB

Segunda cadena que se va a comparar.

ignoreCase

true para no distinguir entre mayúsculas y minúsculas durante la comparación; de lo contrario, false.

culture

Un objeto que proporciona información de comparación específica de la referencia cultural.

Valor devuelto

Type: System.Int32

Entero de 32 bits con signo que indica la relación léxica que existe entre los dos términos de una comparación.

Valor

Condición

Menor que cero

strA precede a strB en el criterio de ordenación.

Cero

strA se produce en la misma posición que strB en el criterio de ordenación.

Mayor que cero

strA sigue strB en el criterio de ordenación.

Exception Condition
ArgumentNullException

El valor de culture es null.

La comparación utiliza el culture parámetro para obtener información específica de la referencia cultural como las reglas de mayúsculas y minúsculas y el orden alfabético de los caracteres individuales.Por ejemplo, una referencia cultural podría especificar que ciertas combinaciones de caracteres se tratan como un único carácter o caracteres en mayúsculas y minúsculas se va a comparar de una manera determinada, o que el criterio de ordenación de un carácter depende de los caracteres anteriores o posteriores.

La comparación se realiza utilizando las reglas de ordenación de palabras.Para obtener más información acerca de la palabra, cadena y ordinales ordenaciones, vea System.Globalization.CompareOptions.

Pueden ser uno o ambos términos null.Por definición, cualquier cadena, incluida la cadena vacía (""), son mayores que una referencia nula; y dos referencias nulas son iguales entre sí.

La comparación finaliza cuando se detecta una desigualdad o se han comparado las dos cadenas.Sin embargo, si las dos cadenas son iguales hasta el final de una cadena y la otra cadena tiene caracteres restantes, la cadena de caracteres restantes se considera mayor.El valor devuelto es el resultado de la última comparación realizada.

Pueden producirse resultados inesperados cuando las comparaciones se ven afectadas por las reglas de mayúsculas y minúsculas específicas de la referencia cultural.Por ejemplo, en turco, en el ejemplo siguiente se genera resultados no válidos porque el sistema de archivos turco no utiliza las reglas lingüísticas de mayúsculas y minúsculas para la letra "i" de "file".

static bool IsFileURI(String path)
{
    return (String.Compare(path, 0, "file:", 0, 5, true) == 0);
}

Compare el nombre de ruta de acceso a "file" utilizando una comparación ordinal.El código correcto para hacerlo es la siguiente:

static bool IsFileURI(String path)
{
    return (String.Compare(path, 0, "file:", 0, 5, StringComparison.OrdinalIgnoreCase) == 0);
}

Notas para los llamadores:

Los juegos de caracteres incluyen caracteres que se pueden pasar por alto.El Compare(String, String, Boolean, CultureInfo) método no tiene en cuenta dichos caracteres cuando realiza una comparación dependiente de la referencia cultural.Por ejemplo, si se ejecuta el código siguiente en la .NET Framework 4 o posterior, una comparación entre mayúsculas y minúsculas de "animal" con "Ani-mal" (mediante un guión o U + 00AD) con el nombre invariable referencia cultural indica que las dos cadenas son equivalentes.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string s1 = "Ani\u00ADmal";
      string s2 = "animal";

      Console.WriteLine("Comparison of '{0}' and '{1}': {2}", 
                        s1, s2, String.Compare(s1, s2, true,
                        CultureInfo.InvariantCulture));
   }
}
// The example displays the following output:
//       Comparison of 'ani-mal' and 'animal': 0

Para reconocer caracteres pueden pasar por alto en una comparación de cadenas, llame a la Compare método y suministrar un valor de uno de ellos CompareOptions.Ordinal o CompareOptions.OrdinalIgnoreCase para el options parámetro.

En el ejemplo siguiente se muestra cómo la referencia cultural puede afectar a una comparación.En checo - referencia cultural de la República Checa, "ch" es un carácter único que es mayor que "d".Sin embargo, en inglés: referencia cultural de Estados Unidos, "ch" consta de dos caracteres y "c" es menor que "d".

using System;
using System.Globalization;

class Sample {
    public static void Main() {
    String str1 = "change";
    String str2 = "dollar";
    String relation = null;

    relation = symbol( String.Compare(str1, str2, false, new CultureInfo("en-US")) );
    Console.WriteLine("For en-US: {0} {1} {2}", str1, relation, str2);

    relation = symbol( String.Compare(str1, str2, false, new CultureInfo("cs-CZ")) );
    Console.WriteLine("For cs-CZ: {0} {1} {2}", str1, relation, str2);
    }

    private static String symbol(int r) {
    String s = "=";
    if      (r < 0) s = "<";
    else if (r > 0) s = ">";
    return s;
    }
}
/*
This example produces the following results.
For en-US: change < dollar
For cs-CZ: change > dollar
*/

.NET Framework
Disponible desde 1.1
Volver al principio
Mostrar:
© 2016 Microsoft