List<>.ForEach()でcontinueを使いたいときはWhereを使う
いつものようにListのForeachメソッドで処理を書いていて、当然なんですがcontinue文が使えないことに気づきました。
そういうときはForEachの前にWhere句を挟むとよいようです。例えば、あるリスト(itemsとします)の要素のうち、特定のリスト(ignoredItems)に含まれないもののみ処理を行いたいとき、continueを使うと以下のようになると思いますが、
1 | List<Item> items = new List<Item>() { ... } |
これをForEachメソッドを使う形にすると以下のように書けます。
1 | items.Where(i => !(ignoredItems.Contains(i))).ToList() |
細かい点ですが、やはりLinqは便利だなと思いました。
ちなみにbreak文を使いたいときは前段にTakeWhile()を挟むといいようです。自分は使ったことないですが…
Ursprünglicher Autor: kanchi0914
Ursprünglicher Link: https://kanchi0914.netlify.app/2020/07/29/continue-in-linq/
Copyright-Erklärung: Bitte geben Sie die Quelle des Nachdrucks an.