c# - 有条件的 foreach 循环

标签 c# .net

我可以像这样用不止一个条件做循环:

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/

相关文章:

c# - 在 C# 中查询 MSMQ 系统队列

c# for 循环错误的迭代次数

c# - 如何强制所有程序线程在程序关闭时退出?

c# - 使用三元语法将参数设置为 DBNull.Value 会出错?

c# - 是否可以在 .NET Core 平台上运行 ASP .NET MVC 5?

c# - Mvc 从服务器端取消 Jquery Ajax 请求

c# - wp8-如何将下载的文件访问到隔离存储中

c# - 我们可以在 BackgroundWorker 中使用 DispatcherTimer 吗?

c# - EF 不更新相关实体,只更新简单字段

.net - ClickOnce 应用程序未通过 Process.Start ("x.abc")启动,且 *.abc 与 ClickOnce 应用程序关联