Python的for和while循环包括一个可选的Python子句,如果循环正常退出,该子句将执行该子句(即,不带break语句)。例如,在Python中可以编写以下代码:
for x in range(3):
print(x)
else
print("The loop exited normally")产出如下:
0
1
2
The loop exited normally您将如何在C#中完成类似的任务,以便编写如下代码:
for (int i = 0; i < 3; i++)
{
Console.WriteLine(x);
}
else
Console.WriteLine("The loop exited normally");发布于 2011-07-01 11:19:30
foreach- Python的Python构造如下所示:
foreach( elem in collection )
{
if( condition(elem) )
break;
}
else
{
doSomething();
} 只有在foreach循环期间未调用中断的情况下,才会执行。
对应的C#可能是:
bool found = false;
foreach( elem in collection )
{
if( condition(elem) )
{
found = true;
break;
}
}
if( !found )
{
doSomething();
}来源:VisualC#开发人员中心
发布于 2011-07-01 11:20:00
当然:
break,您可以使用return来避免在循环下面执行代码。break之前设置的布尔变量,并在循环之后进行测试。goto而不是break不过,如果你问我的话,这是个奇怪的模式。"Foreach“总是以”there“这个词开头,所以在这里没有意义。
发布于 2011-07-01 11:18:01
如果您指的是Python中的for- the和while-else构造。,则有一个基本的IEnumerable<T>扩展方法,它模拟这篇文章中描述的foreach-else,其实现如下:
public static void ForEachElse<TSource>(
this IEnumerable<TSource> source,
Func<TSource, bool> action, Action @else)
{
foreach (var i in source)
{
if (!action(i))
{
return;
}
}
@else();
}https://stackoverflow.com/questions/6547195
复制相似问题