这是我目前用来跳出双重循环并继续执行 DoStuff() 的方法:
foreach (var enemyUnit in nearbyEnemyUnits) {
var skip = false;
foreach (var ownUnit in ownUnits) {
if (ownUnit.EngagedTargetTag == enemyUnit.tag) {
skip = true;
break;
}
}
if (skip) continue;
DoStuff(enemyUnit);
}
整个“定义一个临时布尔变量来检查跳过”的方法对我来说似乎非常hacky。在像Go这样的语言中,我可以使用标签来退出循环,甚至可以使内部循环成为clojure的一部分。在C#中最好的方法是什么?
我一直像上面的例子那样做了很长时间,感觉一定有更好的方法 - 现在几乎感到羞愧地问。
谢谢
goto
,但C#保留了goto
。 - harold