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

本文关键字:是否 包含特 集合 何检查 检查 | 更新日期: 2023-09-27 18:06:41

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

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

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

也许是.Any()的问题?

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

您需要在这里使用All(),它将检查所有项目是否被选中:

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

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.