函数进化到Lambda表达式的三过程

  • 假如我们想要从一个整型数组中取出其中是奇数的选项,其实现方式有很多,
  • 接下来通过三种方法的对比理解Lambda表达式的用途,需要了解的朋友可以参考下
       1 //声明委托类型 2 public delegate bool IntFilter(int i); 

方法一:命名方法


public class Common 2 {
    //【函数】查找数组中的奇数
4 public static List<int> FilterArrayOfInt(int[] ints, IntFilter filter) 5 { 6 var lstOddInt = new List<int>(); 7 foreach (var i in ints) 8 { 9 if (filter(i)) //用传进来的函数做判断 10 { 11 lstOddInt.Add(i); 12 } 13 } 14 return lstOddInt; 15 } 16 } 17

19 public class Application
20 {    
//【函数】判断奇数偶数
21 public static bool IsOdd(int i) 22 { 23 return i % 2 != 0; 24 } 25 } 26 27

   //声明数组
28 var nums = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

//调用
29 var oddNums = Common.FilterArrayOfInt(nums, Application.IsOdd); 30 foreach (var item in oddNums) 31 { 32 Console.WriteLine(item); // 1,3,5,7,9 33 }

方法二:匿名方法


1 var oddNums = Common.FilterArrayOfInt(nums, delegate(int i) { return i % 2 != 0; }); 

方法三:Lambda表达式


1 var oddNums = Common.FilterArrayOfInt(nums, i => i % 2 != 0); 
 


很显然,使用Lambda表达式使代码更为简洁。
原文地址:https://www.cnblogs.com/zhangguorenmi/p/13034804.html