2011-11-17 20 views

Respuesta

10

== es insensible a la cultura, es una simple comparación ordinal. Entonces, dos cadenas que son culturalmente iguales, o incluso iguales en términos de otras formas de canonización, pueden no ser iguales a través de ==. Básicamente trata cada cadena como una matriz char.

10

El String.operator == sobrecargado realizará una comparación ordinal de cultura desconocida – que compara las cadenas byte a byte con un heavily optimized unrolled loop.
Se llama a la misma función interna como String.Equals(a, b, StringComparison.Ordinal)

14

Si se comparan las cadenas de cultivo consciente con ==, por ejemplo "Strasse" con "Straße", devuelve falso.

Si necesita comparaciones compatibles con cultura para las cosas de la interfaz de usuario (clasificación de Listview), use String.Compare con la CultureInfo relacionada.

CultureInfo ci = new CultureInfo("de-DE"); 
String.Compare("Strasse", "Straße", true, ci) // Returns zero 
+3

+1 para el ejemplo. – Otiel

Cuestiones relacionadas