如何检查布尔列表中的值?

Pat*_*607 4 c# visual-studio

我有这个清单: List<bool> values = new List<bool>();

洋溢着: True,True,False,True,False,False,True

当我这样做: int amountTrue = values.Count(v => true); 它返回7.这只是List中的值.我认为它检查值是否存在,但这不是我想要的.

如何True使用Count或任何其他可链接方法获取List中的值?我知道我可以循环使用它,但我认为这可以更轻松.

Dav*_*ych 10

Count方法可以采用谓词,它基本上是一个返回布尔值的方法.在这种情况下,该Count方法计算"传递"谓词的项目数.你正在做的是说"对于每个项目,检查是否true真实",这显然是真的.你想要做的是检查每个是否为真,你可以这样做:

values.Count(v => v);
Run Code Online (Sandbox Code Playgroud)

或者是手写的

values.Where(v => v).Count();
Run Code Online (Sandbox Code Playgroud)