Lambda表達式(精通C#第六版)
阿新 • • 發佈:2019-05-15
關於 dal radi void stat 所有 小技巧 delegate lis
Lambda表達式一些可參考的小技巧和解答,
關於Lambda表達的Find、FindAll一個小解答和使用匿名函數、非匿名函數、labmda表達式的一些小實例
Find:搜索與指定謂詞所定義的條件相匹配的元素,並返回整個 System.Collections.Generic.List<T> 中的第一個匹配元素
FindAll:檢索與指定謂詞定義的條件匹配的所有元素
static void TraditionalDelegateSyneax() { List<int> list = new List<int>(); list.AddRange(new int[] { 20, 1, 4, 8, 9, 44 }); //使用傳統的委托調用findAll Predicate<int> callback = new Predicate<int>(IsEvenNumber); //不使用匿名函數 //List<int> evenNumbers = list.FindAll(callback);//使用匿名函數 //List<int> evenNumbers = list.FindAll(delegate(int i) { return (i % 2) == 0; }); //使用labmda表達式,labmda表達的參數即可以是顯示類式,也可以是隱式類型化, //List<int> evenNumbers = list.FindAll(x => (x % 2) == 0); //使用多個語句處理參數 List<int> evenNumbers = list.FindAll((i) => { Console.WriteLine("value of is current:{0}",i); bool isEven = ((i % 2) == 0); return isEven; }); Console.WriteLine("Here are you even numbers"); foreach (var evenNumber in evenNumbers) { Console.WriteLine("{0}\t",evenNumber); } Console.ReadLine(); }
static bool IsEvenNumber(int i)
{
return (i % 2) == 0;
}
Lambda表達式(精通C#第六版)