【C#】要素数の取得にWhere()は不要。Count()の引数で対応可能

あるリストにたいして「特定の条件にあう要素の個数」を取得したい時があると思います。

単純に考えると以下の手順で処理を行うでしょう。

  1. Where()で条件にあう要素のみ抽出する。
  2. Count()で個数を取得する。
public  class Program
{
    static void Main(string[] args)
    {
        // 対象の数列リスト
        var numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

        // 偶数の個数を取得
        var evenNumbers = numbers.Where(x => x % 2 == 0).Count();

        // 個数表示
        Console.WriteLine(evenNumbers);      // 5
    }
}

これでも動きますが、Count()には引数として条件を指定できます。

つまり、Where()は不要です。

public  class Program
{
    static void Main(string[] args)
    {
        // 対象の数列リスト
        var numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

        // 偶数の個数を取得
        var evenNumbers = numbers.Count(x => x % 2 == 0);

        // 個数表示
        Console.WriteLine(evenNumbers);      // 5
    }
}

コメント