¿Cuáles son las razones para no usar "==" para comparar cadenas localizadas en .NET? ¿Cómo se ejecutaría la comparación en relación con CultureInfo si lo uso?¿Debo usar '==' para las comparaciones de cadenas localizadas de .NET?
Respuesta
==
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
.
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)
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
+1 para el ejemplo. – Otiel
- 1. ¿Algun ORM de .NET admite entidades localizadas listas para usar?
- 2. comparaciones de cadenas de bash
- 3. Analizando cadenas de fechas localizadas en PHP
- 4. Comparaciones avanzadas de cadenas en Oracle SQL
- 5. ¿Cómo incluir variables en cadenas localizadas?
- 6. Resalte cuando el operador de igualdad (==) se utiliza para las comparaciones de cadenas en Eclipse
- 7. Comparaciones de las bibliotecas Ajax
- 8. ¿Cómo se formatea cadenas localizadas para que las palabras sueltas de una oración sean un enlace?
- 9. ¿Qué biblioteca de gráficos .net debo usar?
- 10. MessageFormat en javascript (parámetros en cadenas de UI localizadas)
- 11. .NET lib para interpretar las cadenas de agente de usuario
- 12. ¿Debo guardar cadenas devueltas por NSLocalizedString()?
- 13. .net localización para cadenas
- 14. ¿Debo cerrar las cadenas devueltas por Assembly.GetManifestResourceStream?
- 15. C++: ¿Debo usar cadenas o matrices de caracteres, en general?
- 16. Cómo emular la compilación de MySQLs utf8_general_ci en las comparaciones de cadenas PHP
- 17. ¿Cómo ignoro el marcador de orden de bytes UTF-8 en las comparaciones de cadenas?
- 18. ¿Debo usar siempre TryGetValue para acceder a los diccionarios .net?
- 19. ¿Qué debo usar para una clase BigInt en .NET?
- 20. ¿Qué tipo debo usar para las cadenas de nombre de archivo en C para el proyecto iOS?
- 21. ¿Debo usar MSMQ o SQL Service Broker para las transacciones?
- 22. Uso de las comparaciones O con las declaraciones IF
- 23. ¿Por qué utilizar un conjunto para las comparaciones de listas?
- 24. Sentencia de cambio R en las comparaciones
- 25. NSFetchedResultsSecciones de controlador localizadas ordenadas
- 26. Mongoose: ObjectId Las comparaciones no son consistentes
- 27. ¿Puede obtener acceso mediante programación a las cadenas localizadas estándar en Cocoa Touch?
- 28. ¿Cómo obtener los nombres de las carpetas reales (localizadas)?
- 29. ¿Cómo usar la reflexión para simplificar constructores y comparaciones?
- 30. ¿Debo usar cadena Unicode de forma predeterminada?
¿Estás preguntando sobre el operador C# '=='? Si es así, debe agregar la etiqueta C#. – phoog