Realizar operaciones de cadena que no distinguen entre referencias culturales

Las operaciones de cadena que tienen en cuenta la referencia cultural son ventajosas si va a crear aplicaciones diseñadas para mostrar los resultados en función de la referencia cultural. De manera predeterminada, los métodos que tienen en cuenta las referencias culturales obtienen la referencia cultural que van a usar de la propiedad CurrentCulture del subproceso actual.

En ocasiones, las operaciones de cadena que tienen en cuenta la referencia cultural no son el comportamiento más deseable. Si se utilizan operaciones que tienen en cuenta las referencias culturales cuando los resultados deben ser independientes de las referencias culturales, podrían producirse errores de código en referencias culturales con reglas de ordenación y asignaciones de mayúsculas y minúsculas personalizadas. Para obtener un ejemplo, vea Comparaciones de cadenas que usan la referencia cultural actual en Prácticas recomendadas para utilizar las cadenas.

Si las operaciones de cadenas deberían tener en cuenta las referencias culturales o no depende de cómo use la aplicación los resultados. Las operaciones de cadena que muestran los resultados al usuario normalmente deberían tener en cuenta las referencias culturales. Por ejemplo, si una aplicación muestra al usuario una lista ordenada de cadenas localizadas en un cuadro de lista, la aplicación debería realizar una ordenación que tuviera en cuenta las referencias culturales.

Los resultados de las operaciones de cadenas que se usan internamente no deberían normalmente tener en cuenta las referencias culturales. En general, si la aplicación está trabajando con nombres de archivo, formatos de persistencia o información simbólica que no se muestra al usuario final, los resultados de las operaciones de cadenas no deberían variar en función de la referencia cultural. Por ejemplo, si una aplicación compara una cadena para determinar si es una etiqueta XML reconocida, la comparación no debería tener en cuenta las referencias culturales. Asimismo, si una decisión de seguridad se basa en el resultado de una comparación de cadenas o de cambio de mayúsculas a minúsculas, la operación no debería tener en cuenta las referencias culturales para asegurarse de que el resultado no se vea afectado por el valor de CurrentCulture.

La mayoría de los métodos de .NET que de forma predeterminada realizan operaciones de cadenas que tienen en cuenta la referencia cultural también proporcionan una sobrecarga que permite garantizar resultados que no tienen en cuenta la referencia cultural. Estas sobrecargas que toman un argumento CultureInfo permiten eliminar variaciones de referencia cultural en reglas de ordenación y asignaciones de mayúsculas y minúsculas. Para las operaciones de cadena que no tienen en cuenta la referencia cultural, especifique la referencia cultural como CultureInfo.InvariantCulture.

En esta sección

Los artículos de esta sección demuestran cómo realizar operaciones de cadenas que no distinguen entre referencias culturales con métodos de .NET que tienen en cuenta las referencias culturales de manera predeterminada.

Realizar comparaciones de cadenas que no tienen en cuenta las referencias culturales
Se describe cómo usar los métodos String.Compare y String.CompareTo para realizar comparaciones de cadenas que no distinguen entre referencias culturales.

Realizar cambios de mayúsculas y minúsculas que no distinguen entre referencias culturales
Se describe cómo usar los métodos String.ToUpper, String.ToLower, Char.ToUpper y Char.ToLower para realizar cambios de mayúsculas y minúsculas que no distinguen entre referencias culturales.

Realizar operaciones de cadenas que no tienen en cuenta las referencias culturales en colecciones
Se describe cómo usar las clases CaseInsensitiveComparer, CaseInsensitiveHashCodeProvider, SortedList, ArrayList.Sort y CollectionsUtil.CreateCaseInsensitiveHashtable para realizar operaciones en colecciones que no distinguen entre referencias culturales.

Realizar operaciones de cadenas que no tienen en cuenta las referencias culturales en matrices
Se describe cómo usar los métodos Array.Sort y Array.BinarySearch para realizar operaciones en matrices que no distinguen entre referencias culturales.

Vea también