久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

C#實(shí)戰(zhàn)積累:常用的lambda表達(dá)式整理

 IT技術(shù)分享社區(qū) 2022-11-07 發(fā)布于江蘇

1、什么是lambda表達(dá)式

"Lambda表達(dá)式"屬于一個(gè)匿名函數(shù),,是一種針對(duì)C#編程語(yǔ)言高效的類似于函數(shù)式編程的表達(dá)式,。采用Lambda簡(jiǎn)化了匿名委托的使用,可以大大減少開發(fā)中需要編寫的代碼量。比如針對(duì)一些求和,、去重,、排序等等可以省去了循環(huán)遍歷的寫法,使得代碼變得更加簡(jiǎn)潔,。

2,、lambda表達(dá)式寫法

訪問修飾符 修飾符 返回值類型 方法名(參數(shù)列表) => 表達(dá)式;
public static int Add(int a, int b) => a + b;

3、Lambda的本質(zhì)

Lambda的本質(zhì)就是方法匿名方法,。
通過lambda表達(dá)式可以訪問lambda表達(dá)式塊外的變量,,這稱為閉包。
int lamValue = 10;Func<int,int> sum = x => x+lamValue;
當(dāng)外部變量的值變動(dòng)時(shí),,也會(huì)影響sum的結(jié)果,,不建議這樣寫。

4,、lambda內(nèi)部實(shí)現(xiàn)過程

編譯器會(huì)創(chuàng)建一個(gè)匿名類,,它有一個(gè)構(gòu)造函數(shù)來傳遞外部變量。
public class AnonymousClass{  public int lamValue;  public AnonymousClass(int lamValue){    this.lamValue = lamValue;  }  public int AnonymousMethod(int x) => x+lamValue;}

5,、案例

5.1 新建goods.cs 實(shí)體類

using System;
namespace Study{ [Serializable]public class Goods {/// <summary>/// 商品名稱/// </summary>public string Name { get; set; }/// <summary>/// 商品分類名稱/// </summary>public string CategoryName { get; set; }/// <summary>/// 商品編碼/// </summary>public string Code { get; set; }/// <summary>/// 商品單價(jià)/// </summary>public double Price { get; set; }/// <summary>/// 商品數(shù)量/// </summary>public int Count { get; set; }
}}

5.2,、測(cè)試Demo

using Newtonsoft.Json;using System;using System.Collections.Generic;using System.Linq;
namespace Study{class Program {static void Main(string[] args) {var list = new List<Goods>(); list.Add(new Goods { Name = "小米12", CategoryName = "手機(jī)", Price = 3500.00, Code = "001", Count = 10 }); list.Add(new Goods { Name = "聯(lián)想T50", CategoryName = "筆記本", Price = 8800.00, Code = "002", Count = 25 }); list.Add(new Goods { Name = "雷柏鍵鼠套裝", CategoryName = "數(shù)碼", Price = 688.00, Code = "003", Count = 60 }); list.Add(new Goods { Name = "華為藍(lán)牙耳機(jī)", CategoryName = "數(shù)碼", Price = 998.00, Code = "004", Count =7 });// 篩選分類是數(shù)碼的數(shù)據(jù)var list1 = list.Where(m => m.CategoryName == "數(shù)碼").ToList();// 篩選分類是數(shù)碼或者手機(jī)的記錄var list2 = list.Where(m => m.CategoryName == "數(shù)碼" || m.CategoryName=="手機(jī)").ToList();// 按照價(jià)格升序排序var list3 = list.OrderBy(m => m.Price).ToList();// 按照價(jià)格降序var list4 = list.OrderByDescending(m => m.Price).ToList();// 按照分類進(jìn)行分組只展示分類名稱var list5 = list.GroupBy(m => m.CategoryName).ToList();// 查詢分類是數(shù)碼的商品的總數(shù)量var list6 = list.Where(m=>m.CategoryName=="數(shù)碼").Sum(m => m.Count);// 查詢商品名稱包含機(jī)這個(gè)關(guān)鍵字的平均價(jià)格var list7 = list.Where(m => m.Name.Contains("機(jī)")).Average(m => m.Price);// 根據(jù)分類進(jìn)行分組 獲取分類名、總數(shù)量,、平均單價(jià)var list8 = list.GroupBy(m => m.CategoryName).Select(n => new Goods { CategoryName=n.FirstOrDefault().CategoryName, Price=n.Average(s=>s.Price), Count = n.Sum(s => s.Count) });// 獲取當(dāng)前列表的前兩行記錄var list9 = list.Take(2).ToList();// 獲取后兩行數(shù)據(jù)var list10 = list.TakeLast(2).ToList();// 針對(duì)列表內(nèi)存形式的分頁(yè) 跳過第一條記錄,,往后查詢兩條var list11 = list.Skip(1).Take(2).ToList();
// 針對(duì)整個(gè)列表所有屬性比對(duì)去重var list12 = list.Distinct().ToList();// 根據(jù)分類名稱去重var list13 = list.Select(m => m.CategoryName).Distinct().ToList();// 逗號(hào)拼接字符串 針對(duì)數(shù)值類型字段的拼接 獲取前端字符串展示var json1 = string.Join(',', list.Select(m => m.Code));// 逗號(hào)加'' 單引號(hào)拼接字符串主要是用來數(shù)據(jù)庫(kù)字段不為數(shù)值類型的 in 查詢sql拼接var json2 = string.Join("','", list.Select(m => m.Name)); Console.WriteLine(json1); Console.WriteLine("逆序之前"); foreach (var item in list) { Console.WriteLine(JsonConvert.SerializeObject(item)); }// list 逆序操作 list.Reverse(); Console.WriteLine("逆序之后"); foreach (var item in list) { Console.WriteLine(JsonConvert.SerializeObject(item)); }
Console.WriteLine("Hello World!"); } }}

大數(shù)據(jù)優(yōu)秀博客推薦

IT技術(shù)分享社區(qū)

CSDN:https://blog.csdn.net/xishining

個(gè)人博客網(wǎng)站:https://

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多