Diciamo che ho due stringhe: aeb. Per confrontare se un essere e avere gli stessi valori in cui caso è ignorato, ho sempre usato:Confronto senza problemi di stringhe in C#
// (Assume a and b have been verified not to be null)
if (a.ToLower() == b.ToLower())
Tuttavia, utilizzando Reflector, ho visto un paio di volte in .NET Framework:
// (arg three is ignoreCase)
if (string.Compare(a, b, true) == 0)
Ho provato quale è più veloce, e il ToLower()
ha battuto ogni volta Compare()
con le stringhe che ho usato.
C'è un motivo per cui Compare()
anziché ToLower()
? Qualcosa di diverso CultureInfo
? Mi sto grattando la testa.
Intendeva che l'esempio di ToLower() superava l'esempio (esplicito) Compare(). – strager
@Chris, l'internazionalizzazione può avere un ruolo in questo. – strager
Ok, quindi string.Compare (a.ToLower(), b.ToLower()) sembra essere più veloce di string.Compare (a, b, true) quindi. – core