質問

デリゲートで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