2011-11-17 17 views

risposta

10

== è insensibile alla cultura: è un semplice confronto ordinale. Quindi due stringhe che sono culturalmente uguali - o addirittura uguali in termini di altre forme di canonizzazione - possono non essere uguali via ==. In pratica tratta ogni stringa come un array char.

10

Il sovraccarico String.operator == eseguirà un confronto ordinale cultura-inconsapevole – confronta le stringhe byte per byte utilizzando un heavily optimized unrolled loop.
Si chiama la stessa funzione interna String.Equals(a, b, StringComparison.Ordinal)

14

Se si confrontano le stringhe cultura-aware con ==, ad esempio "Strasse" con "Straße", restituisce false.

Se sono necessari confronti compatibili con la cultura per elementi dell'interfaccia utente (ordinamento di Listview), si utilizza String.Compare con CultureInfo correlato.

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

+1 per l'esempio. – Otiel

Problemi correlati