LEM*_*ANE 4 c# foreach for-loop if-statement
我知道它们不存在,但有其他选择吗?像这样:
for (int i = 0; !connected && i < 100; i++)
{
Thread.Sleep(1);
}
else throw new ConnectionError();
Run Code Online (Sandbox Code Playgroud)
Jon*_*ton 15
foreach-else的Python构造如下:
foreach( elem in collection )
{
if( condition(elem) )
break;
}
else
{
doSomething();
}
Run Code Online (Sandbox Code Playgroud)
如果在foreach循环期间未调用break,则else仅执行
AC#等价物可能是:
bool found = false;
foreach( elem in collection )
{
if( condition(elem) )
{
found = true;
break;
}
}
if( !found )
{
doSomething();
}
Run Code Online (Sandbox Code Playgroud)
当然:
使用其他海报的精美建议之一
使用执行循环的方法代替break,return可以避免在循环下面执行代码
使用您可以在设置之前设置的布尔变量break,然后在循环后进行测试
使用goto代替break
如果您问我,这是一个奇怪的模式。“ Foreach”始终会启动,因此“ else”一词在这里没有意义。