Resharper访问修改后的闭包

时间:2016-01-27 18:17:20

标签: c# selenium resharper warnings

即使我使用Assert逻辑而不破坏代码,Resharpers仍然会警告我对修改后的闭包的访问。

有一种方法可以将它更改为Resharper停止警告我或更好的方法来编写相同的代码行吗?

foreach读取列表中的所有项目,除了最后一项。当一个环绕到foreach结束时,它会断裂。我的变量countSubEscalaTakeWhile计算它以退出最后一个元素中的循环。

foreach不会更改或删除列表的元素。

var subEscalas = Browser.SafeFindElements(By.CssSelector(".subescala tbody tr")).ToList();
var countSubEscala = subEscalas.Count();
Assert.Greater(countSubEscala, 0);

foreach (var x in subEscalas.TakeWhile(x => countSubEscala != 1))
{
    countSubEscala--;

    var seletorExcluir = By.XPath(string.Format("//a[contains(@class,'excluir-subescala')]", countSubEscala - 1));
    Browser.ClickIn(seletorExcluir);
    Browser.Wait(200);
}

1 个答案:

答案 0 :(得分:0)

假设您正在寻找"除了最后一个"之外的所有项目。只需要拿那么多项就可以了:

foreach (var x in subEscalas.Take(subEscalas.Count() - 1))...

请注意,subEscalas.Count() - 1将在开头计算一次,这与为每个项目重新评估的当前代码不同。