ReSharper 2025.2 Help

代码检查:String.LastIndexOf 是特定于文化的(string.LastIndexOf(string) 是特定于文化的)

在字符串转换中显式指定文化类似,此检查有助于避免在具有不同文化设置的机器上运行代码时出现问题。

当使用 String.LastIndexOf 方法用于查找子字符串在字符串中最后一次出现的位置。建议显式指定 StringComparison 参数以避免由于区域性差异而引起的不一致行为。 比较字符串时,比较结果可能会因机器的区域设置而有所不同。 一个典型的例子是土耳其语,其中有一个小写无点的“ı”对应大写的“I”,以及一个小写的“i”对应带点的大写“İ”。 因此,您的代码可能会在具有不同文化设置的机器上返回不同的结果。

为了解决此问题,ReSharper 建议在方法调用中显式添加与文化无关的 StringComparison.Ordinal 指定按字典顺序比较字符串(基于每个字符的 Unicode 值),不考虑区域性设置。

最后修改日期: 2025年 9月 27日