LINQ语句好像是条件

时间:2010-03-21 23:01:55

标签: c#

我看到一段代码写得像这样:

if (from n in numbers select n where n = 5)

但是,我尝试写这样的东西但遇到了错误(请记住,代码示例可能与我从内存中输入的内容完全不同)。我怎样才能编写如上所示的代码?

由于

3 个答案:

答案 0 :(得分:3)

为了将此作为条件使用,您需要有一个返回布尔值的表达式。最有可能的是,这意味着要检查是否有符合您标准的数字。

您可能想要这样做:

if ( (from n in numbers where n == 5 select n).Any() )
{
   // Do something
}

就个人而言,我会避免语言集成语法,并将其写为:

if (numbers.Where(n => n == 5).Any())
{
   // Do something
}

甚至:

if (numbers.Any(n => n == 5))
{
   // Do something
}

答案 1 :(得分:1)

可能是这样的:

if ((from n in numbers where n == 5 select n).Any())

这也可以写成

if (numbers.Any(n => n == 5))

代码实际上是可能的,但不太可能,

if (from n in numbers where n == 5 select n)

numbers是一种自定义的非可枚举类型,其Select方法返回bool

答案 2 :(得分:0)

如果需要布尔表达式。 在选择部分中尝试使用布尔表达式。