LINQ和布尔值

时间:2011-12-15 10:10:55

标签: c# linq

我有一个 LINQ 查询,它返回一个布尔值。

     Boolean status=true;
     var s = from p in msg where p.Type == false select false;

我需要从LINQ查询的值设置状态,这是一个布尔如何对此进行处理

如果LINQ查询只有一个false我需要返回false作为布尔值,这就是我需要的东西

2 个答案:

答案 0 :(得分:12)

目前,假设p有很多消息,那么s将是一个可归因于0到很多虚假的可枚举。你可能想要考虑一个不同的运算符,如

!msg.Any(x=>x.Type=false)

或者更好的感谢Ray的评论:

msg.All(x => x.Type)

如果条件满足p中的任何条件,则任何返回true。如果条件在所有条件中都满足,则all返回true(如果找到不匹配的条件,则会立即返回。)

或者使用您的代码,您可以这样做:

status = s.Count()==0;

如果你的s是空的(没有谬误),那么它将返回true,如果它有一个或多个谬误,它将返回false。

答案 1 :(得分:0)

据我所知,这一切都取决于status旗帜的用途。由于LINQ查询将返回boolean值的可枚举集合,因此您需要确定应根据此集合分配status标志的内容。

在这种情况下,您将得到一个任意大小的false值集合。因此,如果您希望statustrue,如果您没有false值,则只需查询集合的大小即可。即:

status = s.Count() == 0;  // Note: This is an example using the System.Linq namespace