StringComparer
es una Class
que implementa las interfaces de comparación como IComparer
, IEqualityComparer
, IComparer<String>
, de modo que pueda ser utilizado para comparar dos cadenas.
StringComparison
es simplemente un Enum
que puede pasar a ciertos métodos para indicar qué tipo de comparación desea. En ese caso, sospecho que el método subyacente usaría un StringComparer
para hacer la comparación real.
cuándo utilizar cada
Cadena métodos específicos como String.Equals sólo acepta un valor StringComparison
, así que eso es lo que se puede usar en este caso.
Utilizaría un StringComparer
para los métodos que toman un comparador como parámetro, y se llaman en un contexto donde se compararán las cadenas. Por ejemplo, si has tenido una List<String>
, y quería que Sort mencionados de forma sensible a las mayúsculas, se podría hacer:
myList.Sort(StringComparer.OrdinalIgnoreCase);
podría publicar su caso y los resultados esperados de cada uno. Me pregunto si está comparando == vs Iguales en términos de referencias vs valores – MethodMan
'System.StringComparison.OrdinalIgnoreCase' es un valor enum, no un método. Entonces 'System.StringComparison.OrdinalIgnoreCase()' no compilaría. No estoy seguro de lo que realmente quiso decir. – AakashM