如何检查集合中的所有项目是否都具有特定的属性值?

时间:2016-09-22 09:42:56

标签: c# linq

我试图检查我的集合中的所有项目是否都有特定的属性值,假设我有一个名为IsFavourite的属性,我需要检查每个属性是否为真元件。我试过这个:

var c = listView.Items.Cast<Event>().Where(x => x.MatchNation == nation 
        && x.MatchLeague == league && x.IsFavourite == true).Any();

但这只会返回一个具有此属性的项目。

3 个答案:

答案 0 :(得分:5)

您必须使用All()

bool result = listView.Items.Cast<Event>()
                      .Where(x => x.MatchNation == nation && x.MatchLeague == league)
                      .All(x => x.IsFavourite);

答案 1 :(得分:2)

您也可以使用Any(),但检查是否有任何项目不是IsFavourite(IsFavourite==false)。

var z = listView.Items.OfType<Event>().Where(x => x.MatchNation == nation 
            && x.MatchLeague == league).Any(x => x.IsFavourite==false);

答案 2 :(得分:1)

您需要使用All

var c = listView.Items.OfType<Event>().Where(x => x.MatchNation == nation 
        && x.MatchLeague == league).All(x => x.IsFavourite);