日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Linq语言集成查询

發(fā)布時間:2025/3/17 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linq语言集成查询 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Linq就是Language Integrated Query的縮寫,即語言集成查詢,是微軟在.Net? 3.5中提出的 一項新技術, Linq主要包含4個組件——Linq To Objects、Linq To XML、Linq To DataSet 和Linq To SQL。

我們操作linq一般來說有兩種方式,一種是lamdba表達式+擴展方法,還有一種就是表達式,表達式方式跟sql差不多,區(qū)別就是我們這是按照sql執(zhí)行順序來的,比如:sql寫法就是select row from tb,表達式的寫法就是 from tb select row這樣

下面我們來演示lamdba、表達式和普通方法的區(qū)別:

static void Main(string[] args) {var list = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };//lamdba 擴展方法var counts1 = list.Where(t => t % 2 == 0).Count();//表達式var counts2 = (from t in listwhere t % 2 == 0select t).Count();//表達式var counts3 = 0;for (int i = 0; i < list.Length; i++){if (list[i] % 2 == 0){counts3++;}}Console.WriteLine("lamdba方式輸出:{0}", counts1);Console.WriteLine("表達式方法輸出:{0}", counts2);Console.WriteLine("一般方式輸出:{0}", counts3);Console.Read(); } lamdba方式輸出:5 表達式方法輸出:5 一般方式輸出:5

查詢操作符(擴展方法+lambda),擴展方法? 擴展的事IEnumerable<T>接口。所以linq的基礎都是集合要繼承IEnumerable<T>。

過濾:where,Find,FindAll,FindLast,First<T>,FirstOrDefault<>

統(tǒng)計函數(shù):Count,MIn,Sum,Max

排序:OrderBy,OrderByDescending

跳過前面多少條數(shù)據(jù)取余下的數(shù)據(jù):SKIP,如:list.Skip(rows * (pages - 1)),就是我們一般用的分頁了

從開始起獲取指定數(shù)量的數(shù)據(jù):TAKE

模糊匹配:Contains

分組:GroupBy???????

連接查詢:Join

投影:select(select t或者select(t=>new{t.1,t.2}))

2,查詢表達式

From [type] id in source

[join [type] id in source? on expr equals expr [into subGroup]]

[from [type] id in source|let id=expr | where condition]

[orderby ordering,ordering,ordering,ordering...]

select select expr | group expr by key

[into id query]

?tips:type是可選的,id是數(shù)據(jù)源集合中的一項,source是數(shù)據(jù)源集合,?? 其實是在一直循環(huán)source,每次循環(huán)把值放入select后面

?

expr表示一個表達式,subGroup是一個臨時變量,繼承自IGroup,代表一個分組。

可以有多個form,多個where,set指定臨時變量

可以有0-多個排序 orderby a descing orderby b。 orderby a descing ,b,c

select? new投影(匿名類,返回的類型用var?? 因為他生成的時候一后臺定義的類型集合),group 類型 by 具體屬性。標準linq? 前面一般寫一個var(不確定類型)。????????????? 一個查詢表達式必須以select或者group by結束。select后跟要檢索的內容。group by 是對檢索的內容進行分組

group by 他后面只能跟 into is as 關鍵字,常用into 關鍵字放入臨時數(shù)據(jù)源 然后在select 投影。

into放入臨時數(shù)據(jù)源

Let 設置變量

注意:這種查詢表達式會編譯成上面的擴展方法+lambad。這種是一個語法糖。

總結

以上是生活随笔為你收集整理的Linq语言集成查询的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。