0

如何与代表一起退出通用列表 ForEach?中断或返回不起作用。

例子:

        Peoples.ForEach(delegate(People someone)
        {
            if(someone.Name == "foo")
               ???? What to do to exit immediatly ?
        });
4

4 回答 4

2

您无法使用ForEach实现此目的。

于 2009-04-30T09:37:29.797 回答
1

就这样写出来

foreach(People someone in Peoples)
{
    if(someone.Name == "foo") break;
    // rest of code below for != "foo"...
}

跳过 foo 并且仍然为其他人做你可以做的动作

if(someone.Name == "foo") continue;
于 2009-04-30T09:39:24.627 回答
0

您可以执行以下操作:

        Peoples.TakeWhile(p=> p.Name != "foo")
            .ToList().ForEach(p => Console.WriteLine(p.Name));

但这在性能方面是矫枉过正和糟糕的......

只需使用一个简单的foreach循环。

于 2009-04-30T09:49:59.923 回答
0

ForEach()虽然不建议您在满足条件时从内部抛出异常。

于 2009-04-30T09:52:29.540 回答