C# Lambda表达式用途深入理解
程序员文章站
2024-03-04 21:10:00
假如我们想要从一个整型数组中取出其中是奇数的选项,其实现方式有很多,我们通过下面三种实现方式来对对比理解lambda表达式的用途 方法一:命名方法 复制代码 代码如下: p...
假如我们想要从一个整型数组中取出其中是奇数的选项,其实现方式有很多,我们通过下面三种实现方式来对对比理解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表达式使代码更为简洁。
下一篇: java实现图片的上传与展示实例代码