如何检查集合中的项是否包含特定值?

时间:2016-09-12 09:34:58

标签: c# linq

我有一个名为AvailableNations的集合,在这个名为IsSelected的属性中,如果所有项目都设置了IsSelected,我需要在第一个项目后检查如果是这样,我这样做了:

var allChecked = lsVm.AvailableNations.Skip(1).Where(c => c.IsChecked == true).Any();

但是在任何情况下都会返回true,而应该返回false,因为我几乎有一个项目的属性设置为false

问题可能是.Any()吗?

2 个答案:

答案 0 :(得分:2)

您需要在此处使用All(),它会检查是否已检查所有项目:

var allChecked = lsVm.AvailableNations.Skip(1).All(c => c.IsChecked);

答案 1 :(得分:2)

当检查Any任何时,

AvailableNotations方法(在此上下文中)返回true。您需要的是All扩展方法。

var allChecked = lsVm.AvailableNations
                    .Skip(1)                // Skip first element
                    .All(x=>x.IsChecked );  // returns true when `IsChecked` is true for all, else false.