2011-12-28 22 views
1

當我鍵入LINQ查詢時,Visual Studio 2010中的智能感知顯示where子句預期<條件>。作爲當intellisense顯示它期望在linq查詢的where子句中使用<Condition>時,意味着什麼?

From anItem in listOfItems where ... Intellisense shows it expects a <condition> 

是什麼<條件>指什麼?這是一種類型嗎?謂詞?一個布爾表達式?例如,如果您鍵入...

listOfItems.RemoveAll(

... intellisense顯示它期望predicate。 linq中<條件的模擬是什麼? (我得到如何使用一個條件,我想知道它是什麼意思)。從長遠來看,我想開始編寫複雜的where子句,並且想要了解LINQ實際正在做什麼/期待什麼,這樣我就能理解正在發生的事情。

我周圍一點,但沒有我發現在MSDN上一派似乎適合:

回答

2

它幾乎只要求一個布爾表達式,可以在查詢表達式中對每個anItem進行評估。

where clause (C# Reference)第一段概括起來很好:

where子句在查詢表達式用於指定從所述數據源元素將在查詢表達式被返回。它將一個布爾條件(謂詞)應用於每個源元素(由範圍變量引用),並返回指定條件爲真的那些元素。一個查詢表達式可能包含多個where子句,並且一個子句可能包含多個謂詞子表達式。

而這正是Where Clause (Visual Basic)說:

條件

必需。一個表達式,用於確定集合中當前項目的值是否包含在輸出集合中。該表達式必須求值爲Boolean值或Boolean值的等效值。如果條件評估爲True,則該元素包含在查詢結果中;否則,該元素將從查詢結果中排除。

+0

謝謝!但似乎有點複雜。如果我編寫一個名爲myMethod的複雜布爾方法,並嘗試在linq查詢的where子句中使用它,我會得到Method myMethod沒有支持的SQL轉換。我認爲你的答案是正確的(在高層次上,它需要一個謂詞過濾器),但編譯器似乎期望類似於表達式樹或lambda。我仍然試圖弄清楚這一點:http://www.atrevido.net/blog/2007/09/05/Calling+Custom+Methods+In+LINQtoSQL.aspx – bernie2436 2012-01-05 16:40:16

0

「條件」在此上下文中的意思是「將對於每個元件進行評估表達式,返回一個布爾值,並確定一個元素是否包含」。就像一個SQL WHERE子句,我有一種獨特的感覺,他們偷走了它。咳咳。

相關問題