C# Lambda表达式用途深入理解

时间:2021-08-08 23:32:18

假如我们想要从一个整型数组中取出其中是奇数的选项,其实现方式有很多,我们通过下面三种实现方式来对对比理解Lambda表达式的用途 

方法一:命名方法 

复制代码代码如下:


public class Common 

public delegate bool IntFilter(int i); 
public static List<int> FilterArrayOfInt(int[] ints, IntFilter filter) 

var lstOddInt = new List<int>(); 
foreach (var i in ints) 

if (filter(i)) 

lstOddInt.Add(i); 


return lstOddInt; 

 

复制代码代码如下:


public class Application 

public static bool IsOdd(int i) 

return i % 2 != 0; 


调用: 

复制代码代码如下:


var nums = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; 
var oddNums = Common.FilterArrayOfInt(nums, Application.IsOdd); 
foreach (var item in oddNums) 

Console.WriteLine(item); // 1,3,5,7,9 


方法二:匿名方法 

复制代码代码如下:


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


方法三:Lambda表达式 

复制代码代码如下:


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


很显然,使用Lambda表达式使代码更为简洁。