如何使用string.Contains(string,System.StringComparison)修复错误CA1307?

时间:2018-06-09 12:50:59

标签: c# .net-core

在我的测试中,我的断言包含p.Contains(".Tests"),但它会出错

错误CA1307 The behavior of 'string.Contains(string)' could vary based on the current user's locale settings. Replace this call in 'Solution.Tests.PackageTests._bowerEnabledProjects' with a call to 'string.Contains(string, System.StringComparison)'.

所以我想通过:p.Contains(".Tests", System.StringComparison)修复它,但它会出错:

错误CS0119 'StringComparison' is a type, which is not valid in the given context

2 个答案:

答案 0 :(得分:1)

StringComparison是一个枚举 - 警告表示您要指定该枚举中的一个值,例如StringComparison.Ordinal

但是,这个警告有两个错误:

  • 据我所知, 没有string.Contains(string, StringComparison)方法。 string.Contains的文档甚至给出了如何实现这种方法的示例。
  • 警告声称行为取决于区域设置不正确。 string.Contains状态的文档:“此方法执行序数(区分大小写和文化不敏感)比较。”

我建议禁用警告。

答案 1 :(得分:0)

以下是我对于仍在寻找该问题解决方案的人的答案。

我也遇到了同样的问题,我修改了如下代码。

        if (!string.IsNullOrWhiteSpace(searchQuery))
        {
            searchQuery = searchQuery.Trim();
            collection = collection.Where(a => a.MainCategory.Contains(searchQuery, StringComparison.Ordinal)
                || a.FirstName.Contains(searchQuery, StringComparison.Ordinal)
                || a.LastName.Contains(searchQuery, StringComparison.Ordinal));
        }