[Linq] 条件に一致する要素数を数える方法

[Linq] 条件に一致する要素数を数える方法

Linqで条件に一致する要素数を数える方法

Linqを使って、コレクションの中から条件に合うものの数を数える際に、今まではWhere()で条件を絞ってから、Count()をしていました。ですがCount()自体の引数で条件を指定できるのでそちらを利用した方が簡潔だと知りました。

例えば 1~100 の中の偶数の個数を数える処理は次のように書けます。

var count = Enumerable.Range(1, 100).Count(n => n % 2 == 0); // 50

Where()で指定していた条件を単にCount()に持ってきただけですが … こちらの方がスマートに見えます。

Linqで条件に一致する要素が存在するかどうか判定する方法

条件に一致する要素が存在するかどうかは、個数が1個以上かどうかではなく、Any() を使います。

// 偶数値が存在するかどうか
var containsEven = Enumerable.Range(1, 100).Any(n => n % 2 == 0);

条件にすべて一致いているかどうかを確認する方法

All() 使うと、条件にすべて一致しているかどうかを判定することもできます。

// すべて100以下のすうかどうか
var result = Enumerable.Range(1, 100).All(n => n <= 100); // true

まとめ

便利なメソッドがいろいろと用意されているので、簡潔に記述できるようになりましょう。

Linqカテゴリの最新記事