Pandora Pocket

IT系と日常系の備忘録。三日坊主。

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);

f:id:Ovis:20210607223638p:plain

参考