Información
El tema que ha solicitado se muestra abajo. Sin embargo, este tema no se encuentra en la biblioteca.

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

Compara las subcadenas de 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,
	int indexA,
	string strB,
	int indexB,
	int length,
	bool ignoreCase,
	CultureInfo culture
)

Parámetros

strA
Tipo: System.String
Primera cadena que se va a usar en la comparación.
indexA
Tipo: System.Int32
Posición de la subcadena dentro de strA.
strB
Tipo: System.String
Segunda cadena que se va a usar en la comparación.
indexB
Tipo: System.Int32
Posición de la subcadena dentro de strB.
length
Tipo: System.Int32
Número máximo de caracteres de las subcadenas que se van 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 que indica la relación léxica que existe entre los dos términos de una comparación.

Valor

Condition

Menor que cero

La subcadena de strA es menor que la subcadena de strB.

Cero

Las subcadenas son iguales o length es cero.

Mayor que cero

La subcadena de strA es mayor que la subcadena de strB.

ExcepciónCondición
ArgumentOutOfRangeException

El valor de indexA es mayor que strA. Length.

O bien

El valor de indexB es mayor que strB. Length.

O bien

indexA, indexB o length son valores negativos.

O bien

strA o strB es null y length es mayor que cero.

ArgumentNullException

culture es null.

Las subcadenas que se van a comparar comienzan en strA en la posición indexA y en strB en la posición indexB. indexA e indexB son de base cero; es decir, el primer carácter de strA y de strB está en la posición cero y no en la posición uno. La longitud de la primera subcadena es igual a la longitud de strA menos indexA más uno. La longitud de la segunda subcadena es igual a la longitud de strB menos indexB más uno.

El número de caracteres que se van a comparar coincide con la menor de las longitudes de las dos subcadenas y length. Los parámetros indexA, indexB y length deben ser números no negativos.

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 subcadenas. 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, Int32, String, Int32, Int32, Boolean, CultureInfo) no considera estos caracteres cuando se realiza una comparación lingüística o cultura- confidencial. Para reconocer los caracteres ignorable en la comparación, llame al método de Compare(String, Int32, String, Int32, Int32, CultureInfo, CompareOptions) y proporcione un valor de CompareOptions.Ordinal o de CompareOptions.OrdinalIgnoreCase para el parámetro de options .

En el ejemplo siguiente se comparan dos subcadenas usando referencias culturales diferentes y sin tener en cuenta el uso de minúsculas y mayúsculas en las subcadenas. La elección de la referencia cultural afecta a cómo se compara la letra "I".


// Sample for String.Compare(String, Int32, String, Int32, Int32, Boolean, CultureInfo)
using System;
using System.Globalization;

class Sample {
    public static void Main() {
//                 0123456
    String str1 = "MACHINE";
    String str2 = "machine";
    String str;
    int result;

    Console.WriteLine();
    Console.WriteLine("str1 = '{0}', str2 = '{1}'", str1, str2);
    Console.WriteLine("Ignore case, Turkish culture:");
    result = String.Compare(str1, 4, str2, 4, 2, true, new CultureInfo("tr-TR"));
    str = ((result < 0) ? "less than" : ((result > 0) ? "greater than" : "equal to"));
    Console.Write("Substring '{0}' in '{1}' is ", str1.Substring(4, 2), str1);
    Console.Write("{0} ", str);
    Console.WriteLine("substring '{0}' in '{1}'.", str2.Substring(4, 2), str2);

    Console.WriteLine();
    Console.WriteLine("Ignore case, invariant culture:");
    result = String.Compare(str1, 4, str2, 4, 2, true, CultureInfo.InvariantCulture);
    str = ((result < 0) ? "less than" : ((result > 0) ? "greater than" : "equal to"));
    Console.Write("Substring '{0}' in '{1}' is ", str1.Substring(4, 2), str1);
    Console.Write("{0} ", str);
    Console.WriteLine("substring '{0}' in '{1}'.", str2.Substring(4, 2), str2);
    }
}
/*
This example produces the following results:

str1 = 'MACHINE', str2 = 'machine'
Ignore case, Turkish culture:
Substring 'IN' in 'MACHINE' is less than substring 'in' in 'machine'.

Ignore case, invariant culture:
Substring 'IN' in 'MACHINE' is equal to substring 'in' in 'machine'.
*/


.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

Mostrar:
© 2015 Microsoft