如何与代表一起退出通用列表 ForEach?中断或返回不起作用。
例子:
Peoples.ForEach(delegate(People someone)
{
if(someone.Name == "foo")
???? What to do to exit immediatly ?
});
您无法使用ForEach实现此目的。
就这样写出来
foreach(People someone in Peoples)
{
if(someone.Name == "foo") break;
// rest of code below for != "foo"...
}
跳过 foo 并且仍然为其他人做你可以做的动作
if(someone.Name == "foo") continue;
您可以执行以下操作:
Peoples.TakeWhile(p=> p.Name != "foo")
.ToList().ForEach(p => Console.WriteLine(p.Name));
但这在性能方面是矫枉过正和糟糕的......
只需使用一个简单的foreach
循环。
ForEach()
虽然不建议您在满足条件时从内部抛出异常。