我的目标是省略 author_name 以管道开头的数据, author_email 以 pipeline@gmail.com开头< strong>如果项目名称以 ej2 或 Ej2 开头。
我有以下代码。这段代码完全符合我的预期。
if (author_name.Equals("pipeline", StringComparison.OrdinalIgnoreCase) == false
&& author_email.Equals("pipeline@gmail.com", StringComparison.OrdinalIgnoreCase) == false
&& projectName.StartsWith("ej2", StringComparison.OrdinalIgnoreCase) == false)
{
//mY code
}
我的FxCop说违反以下方法使用上述方法。
严重级代码描述项目文件行抑制状态 警告 CA1307 由于'string.StartsWith(string)'的行为可能因当前用户的语言环境设置而异,因此请调用'getProjectDetailsByApi.DevelopmentBranchStatus(List)'中的此调用,并调用'string。 StartsWith(string,StringComparison)'。如果'string.StartsWith(string,StringComparison)'的结果将显示给用户,例如在列出要在列表框中显示的项列表时,请指定'StringComparison.CurrentCulture'或'StringComparison.CurrentCultureIgnoreCase'作为'StringComparison'参数。如果比较不区分大小写的标识符(如文件路径,环境变量或注册表项和值),请指定“StringComparison.OrdinalIgnoreCase”。否则,如果比较区分大小写的标识符,请指定'StringComparison.Ordinal'。
所以我改变了我的代码,如下所示。但我只得到了
projectName.StartsWith("ej2", StringComparison.OrdinalIgnoreCase) == **true**
但是上面的代码会过滤所有 ej2 项目。但我想仅过滤具有 author_name 且 author_email 管道和 pipeline@gmail.com 的项目分别
如果我更改条件List<WebElement> elem =driver.findElements(By.xpath("xpath\to\anchor"));
if(elem.size() >0)
{
System.out.println("Element is present" + elem.get(1).getText();
}
表示,它只提供仅以 ej2 开头的项目。
我该怎么做?
答案 0 :(得分:0)
如果我理解正确,问题在于您对一个字符串(ej2
)进行了不区分大小写的比较,而不是对两个字符串进行区分大小写的比较(使用StringComparison.Ordinal
)要过滤的字符串(ej2
和Ej2
)(至少是我从第一个条件到第二个条件的变化)。
这样的东西似乎是原始状态的FxCop安全版本(注意:我使用&#34;不是&#34;运算符(!
)而不是== false
来保存一些输入):
if (!author_name.Equals("pipeline", StringComparison.OrdinalIgnoreCase)
&& !author_email.Equals("pipeline@gmail.com", StringComparison.OrdinalIgnoreCase)
&& !projectName.StartsWith("ej2", StringComparison.Ordinal)
&& !projectName.StartsWith("Ej2", StringComparison.Ordinal))
{
// do something here...
}
答案 1 :(得分:0)
仅在项目中以Ej2或ej2
开头,忽略具有author_name = pipeline和author_email = pipeline@gmail.com的数据
试试这个:
if(!author_name.Equals("pipeline",StringComparison.InvariantCultureIgnoreCase) && !author_email.Equals("pipeline@gmail.com ",StringComparison.InvariantCultureIgnoreCase))
{
if(projectName.StartsWith("Ej2", StringComparison.InvariantCultureIgnoreCase))
{
// do Your Operations
}
}
答案 2 :(得分:0)
只需用
包装 #pragma warning disable CA1307 // Specify StringComparison
和#pragma warning restore CA1307 // Specify StringComparison