1. 程式人生 > >Lambda表達式(精通C#第六版)

Lambda表達式(精通C#第六版)

關於 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#第六版)