即使我使用Assert
逻辑而不破坏代码,Resharpers仍然会警告我对修改后的闭包的访问。
有一种方法可以将它更改为Resharper停止警告我或更好的方法来编写相同的代码行吗?
foreach读取列表中的所有项目,除了最后一项。当一个环绕到foreach结束时,它会断裂。我的变量countSubEscala
和TakeWhile
计算它以退出最后一个元素中的循环。
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);
}
答案 0 :(得分:0)
假设您正在寻找"除了最后一个"之外的所有项目。只需要拿那么多项就可以了:
foreach (var x in subEscalas.Take(subEscalas.Count() - 1))...
请注意,subEscalas.Count() - 1
将在开头计算一次,这与为每个项目重新评估的当前代码不同。