LINQ

[C#] LINQラムダ式で要素数をカウントする(.Count)

2021年5月11日

LINQラムダ式で要素数をカウントするには .Count()を使用します。

サンプル

例1)List<int>の要素数をカウントする


using System.Collections.Generic;
using System.Linq;

//int型のList
var list = new List<int>;
list.Add(7);
list.Add(3);
list.Add(9);
list.Add(3);
list.Add(5);

//listの要素が3の数をカウントする
int result = list.Where(x => x == 3).Count();

結果

2

例2)List<string>の条件に合致した要素数をカウントする


using System.Collections.Generic;
using System.Linq;

//string型のList
var list = new List<int>;
list.Add("鈴木");
list.Add("田中");
list.Add("木村");
list.Add("山田");
list.Add("大木");

//listの要素に存在する"田中"の数をカウントする
int result1 = list.Where(x => x.Equals("田中")).Count();

//listの中で"木"が含まれる要素の数をカウントする
int result2 = list.Where(x => x.Contains("木")).Count();

//listの中で"木"で始まる要素の数をカウントする
int result3 = list.Where(x => x.StartsWith("木")).Count();

//listの中で"木"で終わる要素の数をカウントする
int result4 = list.Where(x => x.EndsWith("木")).Count();

結果

result1 → 1
result2 → 3
result3 → 1
result4 → 2

例3)データクラスの条件に合致したListの要素数をカウントする


using System.Collections.Generic;
using System.Linq;

//Prefクラス
class Pref{
  public int No {get; set;}
  public string Name {get; set;}
  public int Population {get; set;}
}

//PrefクラスのList
var list = new List<Pref>();
list.Add(new Pref{No=1, Name="北海道", Population=5381733});
list.Add(new Pref{No=2, Name="青森県", Population=1308265});
list.Add(new Pref{No=3, Name="岩手県", Population=1279594});
list.Add(new Pref{No=4, Name="宮城県", Population=2333899});
list.Add(new Pref{No=5, Name="秋田県", Population=1023119});

//Pref.Populationが200万以上の件数をカウントする
int result = list.Where(x => x.Population >= 2000000).Count();

結果

2

備考

  • LINQを使用するには、「using System.Linq;」の宣言が必要です。
  • .Countの戻り値の型は、int型です。

-LINQ