C# lambda表达式及初始化器
生活随笔
收集整理的這篇文章主要介紹了
C# lambda表达式及初始化器
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
C# lambda表達(dá)式及初始化器
using System;using System.Collections.Generic; using System.Linq; namespace ConsoleApplication1d { class CTX{public int id = 10;public string name = "rich";public int age = 28;public CTX(int id){this.id = id;}}class Test{delegate List<int> EvenCheck(List<int> lst);public static void Main(){List<int> lst = new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; //List初始化器Dictionary<int, CTX> dict = new Dictionary<int, CTX>()//Dictionary初始化器 {{1, new CTX(20) {name = "Tom" } },//對(duì)象的初始化器 {2,new CTX(0) {age = 30, id = 10020, name = "unknown" } //對(duì)象的初始化器 }};//Func<T> 系統(tǒng)定義的委托,參數(shù)數(shù)目可變, 至少二個(gè)參數(shù),最后一個(gè)為返回值類(lèi)型,其余為輸入?yún)?shù)類(lèi)型Func<int, int> fdg = p => p + 10;Console.WriteLine(fdg(333));//343Func<int, int, string> fadg = (p, q) => (p + q).ToString();Console.WriteLine(fadg(-10, -20));//-30 EvenCheck eck = p => //委托中的lambda,相當(dāng)于一個(gè)匿名函數(shù),參數(shù)為p, 返回值為list<int>,符合EvenCheck的委托類(lèi)型,因此可直接賦值 {List<int> tlst = new List<int>();foreach(var e in p){if (e % 2 == 0)tlst.Add(e);}return tlst;};List<int> lst2 = lst.Where(p => p % 2 == 0).ToList(); //條件表達(dá)式中的lambda,Where參數(shù)為Func<int, int>,因此可用lambdaList<int> lst3 = eck(lst);int lx = lst3.SingleOrDefault(p => p == 6); //條件表達(dá)式中的lambda lst3 = lst3.OrderBy(p => p).ToList(); //升序,OrderBy參數(shù)為Func<int, int>,因此可用lambdalst3 = lst3.OrderByDescending(p => p).ToList();//降序,OrderByDescending參數(shù)為Func<int, int>,因此可用lambdalst3.Sort();//升序foreach(var l in lst3){Console.Write(l +" ");}Console.WriteLine();}} }?
posted on 2016-10-16 12:18 時(shí)空觀察者9號(hào) 閱讀(...) 評(píng)論(...) 編輯 收藏
總結(jié)
以上是生活随笔為你收集整理的C# lambda表达式及初始化器的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 万向节死锁 gimbal lock
- 下一篇: c# char unsigned_dll