DelegateでLINQのWhere条件を外から渡す
たまに使おうと思って度忘れしているのでメモ。
LINQを使ってデータを抽出する際にWHERE句を用いますが、同じデータソースに対してWHERE句の中身だけが異なるなんてことがあるかと思います。
それぞれメソッドを分けると冗長ですので、WHERE句だけ外部から渡したい。
こういう時はDelegateを使えば外部からラムダ式を渡せます。
ex)
var numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; Func<int, bool> filter = f => (f % 2 == 0) && (f > 5); var result = numbers.Where(filter);