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型です。