C 學習筆記(八) LINQ查詢的基礎知識(下)

2021-08-01 16:47:36 字數 1069 閱讀 4987

這兩個表示式語法各有優勢。

在包含以下運算子的查詢操作中,使用查詢表示式更方便:

①在查詢中使用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...