我可以用多个条件进行循环,如下所示:
for (int i = 0; condition1 && condition2 && ... && conditionN ; i++) {
}
有没有办法使用 foreach 来做到这一点:
foreach (var i in arr and while condition1 && condition2 && ... && conditionN) {
}
但不使用break;
?
我需要这个来传递 Enumerable,如果我的条件不成立,我不想继续迭代。
您可以使用Enumerable.TakeWhile 扩展方法 http://msdn.microsoft.com/en-us/library/system.linq.enumerable.takewhile.aspx:
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
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)