コレクション要素の全てが条件に合致しているか判定するには、.All() を使用します。
サンプル
例1)List型の場合
using System.Collections.Generic;
using System.Linq;
//intのListを生成
List<int> list = new List<int>(){7, 3, 9, 3, 5, 3};
//要素の全てが5以上であるか判定する
bool b = list.All(x => x >= 5);
結果
false
例2)Dictionary型の場合
using System.Collections.Generic;
using System.Linq;
//Dictioinaryの生成
Dictionary<string, string> dc = new Dictionary<string, string>();
dc.Add("01", "大阪市");
dc.Add("02", "京都市");
dc.Add("03", "神戸市");
//Value値の全要素に"市"が含まれるか判定する
bool b = dc.All(x => x.Value.Contains("市"));
結果
true
例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=2, Name="青森県", Population=1308265});
list.Add(new Pref{No=3, Name="岩手県", Population=1279594});
//Pref.Populationが全て100万以上であるか判定する
bool b = list.All(x => x.Population >= 1000000);
結果
true
備考
- LINQを使用するには、「using System.Linq;」の宣言が必要です。
- コレクション要素であれば、List型でもDictionary型でも使用できます。