Effective C# 3rd 読書メモ 32 イテレーションとAction/Predicate/Functionの間の結合度を低くする

イテレーターメソッドでは、主に2種類の仕事をする。1つは一連の要素の繰り返しで、もう1つはそれぞれの要素に基づく処理(集計等)である。これらは別々のイテレーターメソッドで扱うべきである。

これらの仕事を行うには、デリゲートを使うのがよい。デリゲートの中でも、特に汎用的なものはAction<T>Func<T, TResult>Predicate<T>として定義されている。

Predicate<T>はbooleanを返す。フィルタリング処理等に使用する。以下はfilterFuncで絞り込みを行うWhereメソッドの実装例。

Func<T, TResult>の実装例は以下。

コメントを残す