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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

LAMBDA表达式常用 (全)

發布時間:2025/6/17 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LAMBDA表达式常用 (全) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?這里主要是將數據庫中的常用操作用LAMBDA表達式重新表示了下,用法不多,但相對較常用,等有時間了還會擴展,并將查詢語句及LINQ到時也一并重新整理下:

1.select語句:books.Select(p=>new?{?p.Title,?p.UnitPrice,?p.Author});//需用匿名方式

2.where語句:books.Where(p=>p.UnitPrice==100&&p.Title=”ABC”);

補充:

像數據庫中的LIKE?‘%c++%’,LAMBDA中用p.Title.Contains(“c++”)表示;

像數據庫中的LIKE?‘c%’,LAMBDA中用p.Title.StartWith(“c”)表示;

像數據庫中的LIKE?‘%c’,LAMBDA中用p.Title.EndsWith(“c”)表示;

Where的另一種表現形式:

books.Where(p=>{

????var?ret?=?p.UnitPrice>30&&p.Title.Contains(“c++”);

????return?ret;

});

3.排序語句:

像數據庫中order?by?升序:

通過?“對象.OrderBy(p=>p.UnitPrice)”實現

像數據庫中order?by?降序:

通過?“對象.OrderByDescending(p=>p.UnitPrice)”實現

像數據庫中order?by?UnitPrice?descTitle?asc

通過?”對象.OrderByDescending(p=>p.UnitPrice).ThenBy(p=>p.Title)

反過來則是:?”對象.OrderBy(p=>p.UnitPrice).ThenByDescending(p=>p.Title)

?

4.組函數:

? var?max?=?books.Where(p?=>?p.CategoryId?==?1001).Max(p?=>?p.UnitPrice);

????????var?min?=?books.Min(p?=>?p.UnitPrice);

????????var?count?=?books.Count(?);

????????var?avg?=?books.Average(p?=>?p.UnitPrice);

????????var?sum?=?books.Sum(p?=>?p.UnitPrice);

注意,上面這些獲得的東西,不是對象,是單個值

?

5.?GROUP?BY函數

//?select?categoryid,max(unitpirce)?from?books?group?by?categoryid?having?max(unitprice)>50

????????var?list6?=?books.GroupBy(p?=>?p.CategoryId).Where(p=>p.Max(q=>q.UnitPrice)>50);

????????foreach?(var?item?in?list6)

????????{?

????????????Response.Write(string.Format("

  • 類別編號:{0},最高價{1}
  • ",

item.Key,item.Max(p=>p.UnitPrice)));

????????}

?

?

?

?

6.?TOP函數

//取一個范圍?如3,5

var?list7?=?books.Skip(2).Take(3).Select(p?=>?new?{?p.Title,?p.CategoryId,? p.UnitPrice?});

//?select?top?5?

var?list7?=?books.Take(5).OrderByDescending(p?=>?p.UnitPrice)

?.Select(p?=>?new?{?p.CategoryId,?p.UnitPrice,?p.Title,?p.Author?});

?

7.union?函數

books.Where(p?=>?p.CategoryId?==?1001).Select(p?=>?new?{?p.CategoryId,?p.UnitPrice,?p.Title,?p.Author?}).Union(books.Where(p?=>?p.CategoryId?==?1002).Select(p?=>?new?{?p.CategoryId,?p.UnitPrice,?p.Title,?p.Author?}));

這里的Select子句中的列需對應,跟數據庫中是一樣的

?

8.Join方法,用于實現數據庫中雙表連接查詢

//select?a.title,a.unitprice,a.categoryid,b.id,b.name?from?books?a,category?b?

//where?a.categoryid=b.id?and?b.name=‘數據庫’

books.Join(cates.Where(m?=>?m.Name?==?"數據庫"),p?=>?p.CategoryId,?q?=>?q.ID,?(a,?b)?=>?new?{?a.Title,?a.UnitPrice,?a.CategoryId,?b.ID,?b.Name?});

說明:

Join()方法的調用對象類似于在SQL語句中第一張表的表名

Join()方法的第一個形參是第二張表表名的Where條件

Join()方法的第二和第三個參數分別表示第一張表與第二張表的關聯字段

Join()方法的第四個參數表示從兩表中需要獲取的字段,(a,?b)分別表示第一張表和第二張表

轉載于:https://www.cnblogs.com/wangcq/p/5164372.html

總結

以上是生活随笔為你收集整理的LAMBDA表达式常用 (全)的全部內容,希望文章能夠幫你解決所遇到的問題。

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