[英]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.