带条件的Foreach循环

本文关键字:循环 Foreach 条件 | 更新日期: 2023-09-27 18:05:23

我可以像这样使用多个条件进行循环:

for (int i = 0; condition1 && condition2 && ... && conditionN  ; i++) {
}

是否可以使用foreach:

foreach (var i in arr and while condition1 && condition2 && ... && conditionN) {
}

但不使用break; ?

我需要这个来传递Enumerable,如果我的条件不为真,我不想继续迭代

带条件的Foreach循环

可以使用Enumerable。TakeWhile扩展方法:

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
}