具有条件的foreach循环

时间:2011-08-13 21:46:15

标签: c# .net

我可以循环使用多个这样的条件:

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

}

有没有办法使用foreach:

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

但是没有使用break;

我需要这个才能传递Enumerable,如果条件不正确,我不想继续迭代。

1 个答案:

答案 0 :(得分:45)

您可以使用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
}