這兩個表示式語法各有優勢。
在包含以下運算子的查詢操作中,使用查詢表示式更方便:
①在查詢中使用let子句匯入新的查詢變數。
②在查詢中用到selectmany、join或者groupjoin這些運算子。
對於只包含where、orderby或者select的查詢語句,這兩種查詢方式都可以。
一般來說,查詢表示式語法由單個的運算子組成,結構比較清晰;而運算子流語法寫出的**相對簡潔。
where, select, selectmany
orderby, thenby, orderbydescending, thenbydescending
groupby, join, groupjoin
如果乙個查詢運算子沒有合適的查詢語法,那麼沃恩可以混合使用量上面介紹的兩種方式來得到最終結果。這樣做的唯一顯示只是,在整個查詢中,每個查詢表示式的表述必須是完整的,例如,必須有from字句開始,select或者group子句結束。
假設有這樣乙個陣列:
string names = ;
下面這個表示式用於查詢集合names中包含字母a的單詞個數:
int matches = (from n in names where n.contains ("a") select n).count();
// 3
下面這個表示式首先對集合進行排序,然後返回排序陣列中第乙個元素l
string first = (from n in names orderby n select n).first(); // dick
在比較複雜查詢中,這種混合使用兩種查詢語法進行查詢的放射科非常高效,上面的兩個示例,實際上也可以直接使用運算子流語法進行書寫:
int matches = names.where (n => n.contains ("a")).count(); // 3
string first = names.orderby (n => n).first(); // dick
C 學習筆記(八) LINQ查詢之子查詢
在linq中,所謂的子查詢就是包含在另乙個查詢的lambda表示式中的查詢語句。下面這個示例中就是使用子查詢對一組 家名字按姓氏排序 string musos ienumerablequery musos.orderby m m.split last string names ienumerable...
C 學習 LINQ 查詢
在c 中使用linq查詢需要引入命名空間using system.linq 案例實操 資料準備 var roles newlist gamerole newgamerole newgamerole newgamerole newgamerole newgamerole newgamerole var...
c 學習筆記 語言整合查詢LINQ
using system using system.collections.generic using system.linq using system.text using system.threading.tasks 語言整合查詢linq 查詢表示式必須以 from 子句開頭,且必須以 sele...