Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

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, utiliza 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
Tipo: System.String
La primera cadena que se va a comparar.
strB
Tipo: System.String
La segunda cadena que se va a comparar.
ignoreCase
Tipo: System.Boolean
true para no distinguir entre mayúsculas y minúsculas durante la comparación; de lo contrario, false.
culture
Tipo: System.Globalization.CultureInfo
Un objeto que proporciona información de comparación específica de la referencia cultural.

Valor devuelto

Tipo: System.Int32
Un 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

Condition

Menor que cero

strA es menor que strB.

Cero

strA es igual que strB.

Mayor que cero

strA es mayor que strB.

ExcepciónCondición
ArgumentNullException

culture es null.

La operación de comparación utiliza el parámetro culture para obtener información específica de la referencia cultural como, por ejemplo, las reglas relativas a las 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 fuesen consideradas como un solo carácter, o que los caracteres en mayúsculas y minúsculas se comparasen de una forma específica, o que el criterio de ordenación de un carácter dependiese de los caracteres anteriores o posteriores.

La operación de comparación se realiza utilizando las reglas de ordenación de palabras. Para obtener más información sobre las operaciones de ordenación de palabras, cadenas y ordinales, vea System.Globalization.CompareOptions.

Uno o los dos términos de la comparación pueden ser null. Por definición, todas las cadenas, incluida la cadena vacía (""), son mayores que una referencia nula, y dos referencias nulas son iguales entre sí.

La comparación se da por terminada cuando se detecta una desigualdad o cuando se han comparado las dos cadenas. Sin embargo, si las dos cadenas son iguales hasta el final de una de ellas y la otra cadena tiene aún más caracteres, se considera que esta última cadena es mayor. El valor devuelto es el resultado de la última comparación realizada.

Si las operaciones de comparación se ven afectadas por las reglas de mayúsculas y minúsculas específicas de la referencia cultural, pueden obtenerse resultados inesperados. En el siguiente ejemplo, en turco, se generan resultados no válidos porque el sistema de archivos turco no usa 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 para "file" utilizando una comparación de ordinales. Para ello, el código correcto que habría que utilizar sería el 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 método de Compare(String, String, Boolean, CultureInfo) no considera como caracteres cuando se realiza una comparación cultura- confidencial. Por ejemplo, si el código siguiente se ejecuta en .NET Framework 4 o posterior, una comparación sin distinción entre mayúsculas y minúsculas de “y” con “Ani- mal” (mediante un guión flexible, o U+00AD) usando la referencia cultural invariable 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 los caracteres ignorable en una comparación de cadenas, llame al método de Compare y proporcione un valor de CompareOptions.Ordinal o de CompareOptions.OrdinalIgnoreCase para el parámetro de options .

En el siguiente ejemplo se muestra la forma en que la referencia cultural puede afectar a una comparación. En la referencia cultural checo-República Checa, "ch" es un único carácter y es mayor que "d". Sin embargo, en la referencia cultural inglés-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

Compatible con: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

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 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft