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