- 假如我们想要从一个整型数组中取出其中是奇数的选项,其实现方式有很多,
- 接下来通过三种方法的对比理解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表达式使代码更为简洁。