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

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