如何使用委托退出通用列表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()中抛出异常。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top