Cause
A string comparison operation uses a method overload that does not set a System.StringComparison parameter and uses culture-specific string comparison by default. Hence, its behavior will vary based on the current user's locale settings.
Rule description
A string comparison method that uses culture-specific string comparison by default can have potentially unintentional runtime behavior that does not match user intent. It is recommended that you use the overload with the System.StringComparison parameter for correctness and clarity of intent.
This rule flags string comparison methods that use the culture-specific System.StringComparison value by default. For more information, see String comparisons that use the current culture.
How to fix violations
To fix a violation of this rule, change string comparison methods to overloads that accept the System.StringComparison enumeration as a parameter. For example, change String.Compare(str1, str2) to String.Compare(str1, str2, StringComparison.Ordinal).
When to suppress warnings
It is safe to suppress a warning from this rule when the library or application is not intended to be localized.
Suppress a warning
If you just want to suppress a single violation, add preprocessor directives to your source file to disable and then re-enable the rule.
#pragma warning disable CA1310
// The code that's violating the rule is on this line.
#pragma warning restore CA1310To disable the rule for a file, folder, or project, set its severity to none in the configuration file.
[*.{cs,vb}]
dotnet_diagnostic.CA1310.severity = noneFor more information, see How to suppress code analysis warnings.