簡體   English   中英

LINQ語句好像是條件

[英]LINQ statement as if condition

我看到一段代碼寫得像這樣:

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

但是,我嘗試寫這樣的東西但遇到了錯誤(請記住,代碼示例可能與我從內存中鍵入的內容完全不同)。 如何編寫如上所示的代碼?

謝謝

要將此作為條件使用,您需要有一個返回布爾值的表達式。 最有可能的是,這意味着要檢查是否有符合您條件的數字。

你可能想做:

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())

這也可以寫成

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

代碼實際上是可能的,但不太可能

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

numbers是一個自定義的非可枚舉類型,其中Select方法返回bool

如果需要布爾表達式。 select部分中嘗試使用布爾表達式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM