Code Inspection: Specify string comparison explicitly
Similarly to the Specify a culture in string conversion explicitly, this inspection helps to avoid problems with running your code on machines with different culture settings.
When string results returned by
String.ToLower() are compared using equality operators (
!=), comparison results may differ depending on the machine's locale. The canonical example is the Turkish where there is a lowercase dotless "ı" with the corresponding uppercase "I", and a lowercase "i" with an uppercase "İ" with the dot.
So in a case of using
String.ToLower() for a case-insensitive comparison:
ReSharper suggests replacing it with an overload of
where it is immediately clear that the strings are compared taking the culture settings into consideration.
If the comparison is explicitly made culture-insensitive, then it is also suggested to use
String.Equals() with the
InvariantCultureIgnoreCase in the comparison rule parameter, for example:
could be replaced with