visual que otro minusculas mayusculas mayor ejemplo convertir comparar comparaciones como cadenas c# string

que - string compareto c# ejemplo



ComparaciĆ³n de cadenas: InvariantCultureIgnoreCase vs OrdinalIgnoreCase? (4)

Cuál sería mejor código:

int index = fileName.LastIndexOf(".", StringComparison.InvariantCultureIgnoreCase);

o

int index = fileName.LastIndexOf(".", StringComparison.OrdinalIgnoreCase);


FXCop normalmente prefiere OrdinalIgnoreCase . Pero sus requisitos pueden variar.

Para el inglés, hay muy poca diferencia. Cuando te adentras en idiomas que tienen diferentes construcciones de lenguaje escrito, esto se convierte en un problema. No tengo la experiencia suficiente para darte más que eso.

OrdinalIgnoreCase

El StringComparer devuelto por la propiedad OrdinalIgnoreCase trata los caracteres en las cadenas para compararlos como si estuvieran convertidos a mayúsculas utilizando las convenciones de la cultura invariante, y luego realiza una comparación de bytes simples que es independiente del lenguaje. Esto es más apropiado cuando se comparan cadenas que se generan mediante programación o cuando se comparan recursos que no distinguen entre mayúsculas y minúsculas, como rutas y nombres de archivo. http://msdn.microsoft.com/en-us/library/system.stringcomparer.ordinalignorecase.aspx

InvariantCultureIgnoreCase

El StringComparer devuelto por la propiedad InvariantCultureIgnoreCase compara cadenas de una manera lingüísticamente relevante que ignora el caso, pero no es adecuado para mostrar en una cultura en particular. Su principal aplicación es ordenar cadenas de una manera que será idéntica en todas las culturas. http://msdn.microsoft.com/en-us/library/system.stringcomparer.invariantcultureignorecase.aspx

La cultura invariante es el objeto CultureInfo devuelto por la propiedad InvariantCulture.

La propiedad InvariantCultureIgnoreCase realmente devuelve una instancia de una clase anónima derivada de la clase StringComparer.


Ninguno de los códigos es siempre mejor. Hacen cosas diferentes, por lo que son buenos en cosas diferentes.

InvariantCultureIgnoreCase usa reglas de comparación basadas en inglés, pero sin variaciones regionales. Esto es bueno para una comparación neutral que aún tenga en cuenta algunos aspectos lingüísticos.

OrdinalIgnoreCase compara los códigos de los personajes sin aspectos culturales. Esto es bueno para comparaciones exactas, como nombres de inicio de sesión, pero no para ordenar cadenas con caracteres inusuales como é o ö . Esto también es más rápido porque no hay reglas adicionales para aplicar antes de comparar.


Parece que estás haciendo comparaciones de nombre de archivo, así que solo añadiría que OrdinalIgnoreCase es lo más parecido a NTFS (no es exactamente lo mismo, pero está más cerca que InvariantCultureIgnoreCase )


Si realmente desea hacer coincidir solo el punto, entonces CultureInfo.Ordinal sería el más rápido, ya que no hay diferencia de caso.