Al hacer comparaciones que no distinguen entre mayúsculas y minúsculas, ¿es más eficiente convertir la cadena a mayúsculas o minúsculas? ¿Incluso importa?
En esta publicación de SO se sugiere que C # es más eficiente con ToUpper porque "Microsoft lo optimizó de esa manera". Pero también he leído este argumento de que la conversión de ToLower frente a ToUpper depende de lo que contengan más cadenas de caracteres, y que normalmente las cadenas contienen más caracteres en minúsculas, lo que hace que ToLower sea más eficiente.
En particular, me gustaría saber:
- ¿Hay alguna forma de optimizar ToUpper o ToLower de modo que uno sea más rápido que el otro?
- ¿Es más rápido hacer una comparación sin distinción entre mayúsculas y minúsculas y por qué?
- ¿Existen entornos de programación (por ejemplo, C, C #, Python, lo que sea) donde un caso es claramente mejor que el otro y por qué?