26 c# foreach loops goto break
可能重复:
突破嵌套循环
我有这个代码
foreach (___)
{
foreach (___)
{
foreach (___)
{
if (condition)
{
//break out of all loops
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
但break只是"打破"了最内在的循环(对不起我的英语),我想把它们全部留下......
我在考虑:
还有更优雅的方式吗?喜欢由C#提供?
在此先感谢您的帮助!
Rob*_*ani 55
一个非常优雅的解决方案是将整个循环嵌套移动到一个单独的方法,return;当你想要打破所有循环时.
dtb*_*dtb 52
A goto在这里完全没问题:
foreach (___)
{
foreach (___)
{
if (condition)
{
goto done;
}
}
}
done: ;
Run Code Online (Sandbox Code Playgroud)
最好的方法可能是使用return语句重构较小的方法.但是如果你在范围内需要很多变量,你总是可以使用委托.
Action work = delegate
{
foreach (___)
{
foreach (___)
{
foreach (___)
{
if (condition)
{
return;
}
}
}
}
};
work();
Run Code Online (Sandbox Code Playgroud)