usar una quitar primeros los longitud ejemplos comparar como caracteres cadenas cadena c# string comparison

una - string c# ejemplos



Comparaciones de cadenas C#: Diferencia entre CurrentCultureIgnoreCase e InvariantCultureIgnoreCase (2)

Las otras publicaciones me han dado buenos consejos, pero pensé que sería bueno mostrar un ejemplo de donde definitivamente hace la diferencia:

using System; using System.Globalization; using System.Threading; class Test { static void Main() { CultureInfo turkish = CultureInfo.CreateSpecificCulture("tr"); Thread.CurrentThread.CurrentCulture = turkish; // In Turkey, "i" does odd things string lower = "i"; string upper = "I"; Console.WriteLine(lower.Equals(upper, StringComparison.CurrentCultureIgnoreCase)); Console.WriteLine(lower.Equals(upper, StringComparison.InvariantCultureIgnoreCase)); } }

(No hay duda de que hay muchos otros casos, este fue solo el primero en el que pensé).

Al hacer una comparación de cadenas en C #, ¿cuál es la diferencia entre hacer una

string test = "testvalue"; test.Equals("TESTVALUE", StringComparison.CurrentCultureIgnoreCase);

y

string test = "testvalue"; test.Equals("TESTVALUE", StringComparison.InvariantCultureIgnoreCase);

... y ¿es importante incluir ese parámetro extra, de todos modos?


Microsoft proporciona una guía decente para cuándo usar la propiedad InvariantCulture :

MSDN: propiedad CultureInfo.InvariantCulture

... una aplicación debe usar la cultura invariable solo para procesos que requieren resultados independientes de la cultura, como formatear y analizar datos que persisten en un archivo. En otros casos, produce resultados que pueden ser lingüísticamente incorrectos o culturalmente inapropiados.

Consideraciones de Seguridad

Si se tomará una decisión de seguridad en función del resultado de una comparación de cadenas o un cambio de caso, la aplicación debe usar una comparación ordinal que ignore el caso en lugar de utilizar InvariantCulture. [...]

Operaciones de cadena

Si su aplicación necesita realizar una operación de cadena sensible a la cultura que no se vea afectada por el valor de CurrentCulture, debe usar un método que acepte un parámetro CultureInfo. [...]

Datos persistentes

La propiedad InvariantCulture es útil para almacenar datos que no se mostrarán directamente a los usuarios. Almacenar datos en un formato independiente de cultivo garantiza un formato conocido que no cambia. Cuando los usuarios de diferentes culturas acceden a los datos, se pueden formatear de forma adecuada según el usuario específico. [...]