C# LINQ语句,如同条件

C# LINQ语句,如同条件,c#,C#,我看到一段代码是这样写的: if (from n in numbers select n where n = 5) if ((from n in numbers where n == 5 select n).Any()) 然而,我试着写类似的东西,但遇到了错误(请记住,代码示例可能与我在内存中键入的代码不完全相同)。我怎样才能编写像上面这样的代码 谢谢要将其用作条件,您需要有一个返回布尔值的表达式。最可能的情况是,这意味着检查是否有任何数字符合您的标准 你可能想做: if ( (from n

我看到一段代码是这样写的:

if (from n in numbers select n where n = 5)
if ((from n in numbers where n == 5 select n).Any())
然而,我试着写类似的东西,但遇到了错误(请记住,代码示例可能与我在内存中键入的代码不完全相同)。我怎样才能编写像上面这样的代码


谢谢

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

你可能想做:

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
}

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

你可能想做:

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
}

可能是这样的:

if (from n in numbers select n where n = 5)
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
是一种自定义的不可枚举类型,具有返回
bool

Select
方法,可能是这样的:

if (from n in numbers select n where n = 5)
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

在“选择零件”中尝试使用布尔表达式。

如果需要布尔表达式。
尝试在“选择零件”中使用布尔表达式。

错误。这将返回
IEnumerable
。错误。这将返回
IEnumerable