我可以循环使用多个这样的条件:
for (int i = 0; condition1 && condition2 && ... && conditionN ; i++) {
}
Run Code Online (Sandbox Code Playgroud)
有没有办法使用foreach来做到这一点:
foreach (var i in arr and while condition1 && condition2 && ... && conditionN) {
}
Run Code Online (Sandbox Code Playgroud)
但没有使用break;?
我需要这个以传递Enumerable,如果我的条件不正确,我不想继续迭代.
dtb*_*dtb 45
您可以使用Enumerable.TakeWhile扩展方法:
foreach (var i in arr.TakeWhile(j => condition1 && ... && conditionN))
{
// do something
}
Run Code Online (Sandbox Code Playgroud)
这大致相当于:
foreach (var j in arr)
{
if (!(condition1 && ... && conditionN))
{
break;
}
var i = j;
// do something
}
Run Code Online (Sandbox Code Playgroud)