Bueno, ciertamente importa. Cuando utiliza una comparación de igualdad de "ignorar caso", está invocando una porción bastante masiva de código en el marco de .NET que es consciente de cómo funcionan las reglas de mayúsculas y minúsculas en la cultura actual. Las reglas de las cuales son muy interesantes para un geek de coleccionista de sellos antiguos como yo, hay algunas reglas bastante raras dependiendo de dónde mires. El problema turco I es famoso, los tipos Unicode tuvieron que hacer una excepción explícita para ellos.
No es realmente código por cierto, es tablas de búsqueda. Interesante en sí mismo porque requiere que MSFT mantenga la opción de línea de comando/linkres para el compilador de C#. Una opción de compilación que no puedes usar en tus propios proyectos. Está únicamente allí para que mscorlib pueda encontrar los archivos .nlp, las tablas de conversión para reglas de cultivo. Almacenado en el mismo subdirectorio del GAC como mscorlib.dll, el efecto de la opción de compilación.
Pero estoy divagando. Es lógico que StringComparison.OrdinalIgnoreCase sea un poquito más rápido que StringComparison.InvariantCultureIgnoresCase. El hecho de que "invariante" signifique EE. UU., Hogar de MSFT. Difícil de medir, este reloj en nanosegundos. StringComparison.CurrentCultureIgnoreCase golpea esas tablas de traducción. Muerto lento cuando lo usas por primera vez, solo más lento cuando lo usas más tarde. se añadió
La cultura es importante para las comparaciones de invariantes de mayúsculas y minúsculas, ya que algunos idiomas tienen reglas extrañas de mayúsculas/minúsculas. Por ejemplo, turco con sus dos "i" mayúsculas y dos minúsculas, que se cruzan. – CodesInChaos