我可以像这样用不止一个条件做循环:
for (int i = 0; condition1 && condition2 && ... && conditionN ; i++) {
}
有没有办法使用foreach来做到这一点:
foreach (var i in arr and while condition1 && condition2 && ... && conditionN) {
}
但是没有使用 break;
?
我需要它来传递 Enumerable,如果我的条件不成立,我不想继续迭代。
最佳答案
您可以使用 Enumerable.TakeWhile Extension Method :
foreach (var i in arr.TakeWhile(j => condition1 && ... && conditionN))
{
// do something
}
这大致相当于:
foreach (var j in arr)
{
if (!(condition1 && ... && conditionN))
{
break;
}
var i = j;
// do something
}
关于c# - 有条件的 foreach 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7053493/