Digamos que tengo dos cadenas: a y b. Para comparar si un ser y tener los mismos valores cuando se ignora caso, yo siempre he utilizado:Combinando cadenas sin problemas en C#
// (Assume a and b have been verified not to be null)
if (a.ToLower() == b.ToLower())
Sin embargo, el uso de reflector, lo he visto un par de veces en el .NET Framework:
// (arg three is ignoreCase)
if (string.Compare(a, b, true) == 0)
Probé que es más rápido, y el ToLower()
venció Compare()
cada vez con las cuerdas que utilicé.
¿Hay alguna razón para Compare()
en lugar de ToLower()
? Algo sobre diferentes CultureInfo
? Me estoy rascando la cabeza.
Quiso decir que el ejemplo ToLower() superó el ejemplo (explícito) Compare(). – strager
@Chris, la internacionalización puede desempeñar un papel en esto. – strager
Bien, entonces string.Compare (a.ToLower(), b.ToLower()) parece ser más rápido que string.Compare (a, b, true) a continuación. – core