千家信息网

Lambda表达式和匿名方法有哪些区别

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要为大家展示了"Lambda表达式和匿名方法有哪些区别",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"Lambda表达式和匿名方法有哪些区别"这篇
千家信息网最后更新 2026年11月03日Lambda表达式和匿名方法有哪些区别

这篇文章主要为大家展示了"Lambda表达式和匿名方法有哪些区别",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"Lambda表达式和匿名方法有哪些区别"这篇文章吧。

其实,Lambda表达式和匿名方法没多大区别,它们根本就是一件事。要说唯一的区别就是:他们语法表现形式不同。Lambda 表达式是在语法方面的更进一步的进化,仅此而已。因此我们要了解Lambda表达式就应该同时也了解匿名方法。

下面先看一个简单的代码例子,分别用匿名方法和Lambda 表达式来实现对数组的搜索:

使用 .net 2.0 的匿名方法来搜索字符串数组中包含 a 的字符串数组

static void Main(string[] args)

{

string[] list = new string[] { "abc", "12", "java" };

string[] ll = Array.FindAll(list,

delegate(string s)

{

return s.IndexOf("a") >= 0;

}

);

foreach (string var in ll)

{

Console.WriteLine(var);

}

Console.ReadLine();

}

使用 .net 3.5 的Lambda表达式来搜索字符串数组中包含 a 的字符串数组

static void Main(string[] args)

{

string[] list = new string[] { "abc", "12", "java" };

string[] ll = Array.FindAll(list, s => (s.IndexOf("a") >= 0));

foreach (string var in ll)

{

Console.WriteLine(var);

}

Console.ReadLine();

}

从上述两个例子我们可以看出:

从代码书写角度,代码可读性角度来说:Lambda表达式 比匿名方法更简单了。

而 Lambda表达式 和 匿名方法都是干的同一件事情,让我们少写一个函数定义。函数的调用和函数的实现在一起完成了。

Lambda表达式的书写格式如下:

(参数列表) => 表达式或者语句块

其中:

参数个数:可以有多个参数,一个参数,或者无参数。

参数类型:可以隐式或者显式定义。

表达式或者语句块:这部分就是我们平常写函数的实现部分(函数体)。

一些Lambda表达式的书写范例:

有两个参数的 Lambda表达式例子:

注:别看比较复杂,LINQ中实际把 下述代码中的 delegate ,DoSomeThing 替你做了,所以你写代码的时候只需要写

vart = DoSomeThing(7, 8, (x, y) => x * y); 这么一行。

public delegate T HongJunGuoTest01(T t1, T t2);

class Program

{

private static T DoSomeThing(T t1,T t2,HongJunGuoTest01 match)

{

return match(t1, t2);

}

static void Main(string[] args)

{

var t = DoSomeThing(7, 8, (x, y) => x * y);

Console.WriteLine(t);

Console.ReadLine();

}

}

下面这些写法也是对的(你只需要修改Main函数中的代码,其他地方不需要动):

var t = DoSomeThing(7, 8, (int x, int y) => x * y);

var t = DoSomeThing("7", "8", ( x, y) => x + y);

或者我们写一个更复杂的: => 右边是一段语句块。

var t = DoSomeThing(7, 8, (x, y) => { if (x < 5) { return (x + 8) * y; } else { return y; } });

最前面的例子是一个参数的例子,我们就不举一个参数的例子了,下面举一个没有参数的例子:

public delegate void HongJunGuoTest02();

class Program

{

private static void DoSomeThing(HongJunGuoTest02 match)

{

match();

}

static void Main(string[] args)

{

DoSomeThing(() => Console.WriteLine("jajaja"));

Console.ReadLine();

}

}

以上是"Lambda表达式和匿名方法有哪些区别"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

表达式 参数 方法 例子 代码 函数 数组 字符 字符串 内容 就是 篇文章 语句 搜索 复杂 两个 角度 中包 学习 帮助 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 云南咖啡 云信互联网科技有限公司 互联网科技视频 互联网科技宣传片 丰台科技园 互联网公司 科技伦理 互联网公司 互联网公司会议桌创意科技软装饰 互联网科技公司需要的职位 中国科技互联网公司收入 湖南诚度互联网科技有限公司 哈尔滨屹滨互联网科技有限公司 深圳育鹏互联网科技有限公司招聘 沐思想互联网科技有限公司 世界互联网科技成果奖 互联网界的黑科技 长沙渺峰互联网科技有限公司 易租星互联网科技有限公司 互联网科技博主张洲 互联网科技创新创业项目 科技发展第三阶段互联网时代 金融科技 互联网金融 互联网科技的英文 亿账通互联网科技 天扬科技互联网广告 互联网科技公司需要的职位 中国互联网有什么科技含量 互联网科技的全部知识 怎样加入科技互联网 扫呗互联网科技有限公司 银川新华互联网科技学校是国营吗
0