foreach拡張メソッドから抜け出す方法はありますか?「break」キーワードは、拡張メソッドをブレーク元の有効なスコープとして認識しません。
//Doesn't compile
Enumerable.Range(0, 10).ToList().ForEach(i => { System.Windows.MessageBox.Show(i.ToString()); if (i > 2)break; });
編集:質問から「linq」を削除
コードは、拡張メソッドでブレークが機能しないことを示す単なる例であることに注意してください...本当に私が欲しいのは、ユーザーがリストの処理を中止できるようにすることです。UIスレッドには中止変数があり、forループはちょうどブレークします。ユーザーがキャンセルボタンを押したとき。現在、通常のforループがありますが、extensionメソッドで実行できるかどうかを確認したいと思いました。