如何使用委托退出通用列表ForEach?

时间:2009-04-30 09:34:55

标签: generics list foreach delegates

如何使用委托退出通用列表ForEach?中断或返回不起作用。

示例:

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

4 个答案:

答案 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()内部抛出异常。