C# Lambda表达式用途深入理解
更新时间:2012年12月27日 14:42:10 作者:
假如我们想要从一个整型数组中取出其中是奇数的选项,其实现方式有很多,接下来通过三种方法的对比理解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表达式使代码更为简洁。
方法一:命名方法
复制代码 代码如下:
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表达式使代码更为简洁。
相关文章
Coolite Cool Study 1 在Grid中用ComboBox 来编辑数据
作为Coolite的第一个教程,我想展现给大家能够体现Coolite强大的例子(当然也比官方例子稍微复杂一点)。2009-05-05
关于.NET/C#/WCF/WPF 打造IP网络智能视频监控系统的介绍
本篇文章小编将为大家介绍,关于.NET/C#/WCF/WPF 打造IP网络智能视频监控系统的介绍。需要的朋友参考下2013-04-04
this connector is disabled错误的解决方法
打开editor/filemanager/connectors/aspx/config.ascx修改CheckAuthentication()方法,返回true2008-11-11


最新评论