我有一个名为AvailableNations
的集合,在这个名为IsSelected
的属性中,如果所有项目都设置了IsSelected
,我需要在第一个项目后检查如果是这样,我这样做了:
var allChecked = lsVm.AvailableNations.Skip(1).Where(c => c.IsChecked == true).Any();
但是在任何情况下都会返回true
,而应该返回false,因为我几乎有一个项目的属性设置为false
。
问题可能是.Any()
吗?
答案 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.