C#中Lambda表达式如何使用
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,本篇内容介绍了"C#中Lambda表达式如何使用"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、介
千家信息网最后更新 2025年11月07日C#中Lambda表达式如何使用2、Func
本篇内容介绍了"C#中Lambda表达式如何使用"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
一、介绍
1、"Lambda表达式"是一个特殊的匿名函数,简化了匿名委托的使用,是一种高效的类似于函数式编程的表达式,Lambda简化了开发中需要编写的代码量。
2、它可以包含表达式和语句,并且可用于创建委托或表达式目录树类型,支持带有可绑定到委托或表达式树的输入参数的内联表达式。
3、所有Lambda表达式都使用Lambda运算符=>,该运算符读作"goes to"。Lambda运算符的左边是输入参数(如果有),右边是表达式或语句块。Lambda表达式x => x * x读作"x goes to x times x"。
4、Lambda表达式语法:
无参数:()=>expr
一个参数:param=>expr
多个参数:(param-list)=>expr
注意点:如果方法体内只有一句代码,可以省略代码块符号,也就是不用写{ }
二、举例:
1、 委托实例方式
//委托 逛超市 delegate int GuangChaoshi(int a); static void Main(string[] args) { GuangChaoshi gwl = JieZhang; Console.WriteLine(gwl(10) + ""); //打印20,委托的应用 Console.ReadKey(); } //结账 public static int JieZhang(int a) { return a + 10; }2、lambda表达式
//委托 逛超市 delegate int GuangChaoshi(int a); static void Main(string[] args) { // GuangChaoshi gwl = JieZhang; GuangChaoshi gwl = p => p + 10; Console.WriteLine(gwl(10) + ""); //打印20,表达式的应用 Console.ReadKey(); }3、多参数
//委托 逛超市 delegate int GuangChaoshi(int a,int b); static void Main(string[] args) { GuangChaoshi gwl = (p,z) => z-(p + 10); Console.WriteLine(gwl(10,100) + ""); //打印80,z对应参数b,p对应参数a Console.ReadKey(); }三、内置委托
1、集合操作
public class Person { public string Name { get; set; } public int Age { get;set; } } class Program { public static List PersonsList() { List persons = new List(); for (int i = 0; i < 7; i++) { Person p = new Person() { Name = i + "儿子", Age = 8 - i, }; persons.Add(p); } return persons; } static void Main(string[] args) { List persons = PersonsList(); persons = persons.Where(p => p.Age > 6).ToList(); //所有Age>6的Person的集合 Person per = persons.SingleOrDefault(p => p.Age == 1); //Age=1的单个people类 persons = persons.Where(p => p.Name.Contains("儿子")).ToList(); //所有Name包含儿子的Person的集合 } } 2、Func委托
static void Main(string[] args) { Func gwl = (p, j) => { if (p + j == 10) { return true; } return false; }; Console.WriteLine(gwl(5,5) + ""); //打印'True',z对应参数b,p对应参数a Console.ReadKey(); } 四、lambda表达式树动态创建方法
static void Main(string[] args) { //i*j+w*x ParameterExpression a = Expression.Parameter(typeof(int),"i"); //创建一个表达式树中的参数,作为一个节点,这里是最下层的节点 ParameterExpression b = Expression.Parameter(typeof(int),"j"); BinaryExpression be = Expression.Multiply(a,b); //这里i*j,生成表达式树中的一个节点,比上面节点高一级 ParameterExpression c = Expression.Parameter(typeof(int), "w"); ParameterExpression d = Expression.Parameter(typeof(int), "x"); BinaryExpression be1 = Expression.Multiply(c, d); BinaryExpression su = Expression.Add(be,be1); //运算两个中级节点,产生终结点 Expression> lambda = Expression.Lambda>(su,a,b,c,d); Console.WriteLine(lambda + ""); //打印'(i,j,w,x)=>((i*j)+(w*x))',z对应参数b,p对应参数a Func f= lambda.Compile(); //将表达式树描述的lambda表达式,编译为可执行代码,并生成该lambda表达式的委托; Console.WriteLine(f(1, 1, 1, 1) + ""); //打印2 Console.ReadKey(); } "C#中Lambda表达式如何使用"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
表达式
参数
委托
节点
代码
运算
儿子
超市
运算符
C#
内容
函数
方法
更多
知识
语句
应用
生成
输入
实用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
怎么查看数据库作业的执行时间
sql数据库无项目
卫星数据分析软件开发
数据库技术的特征
新时代下的网络安全挑战
网络安全策划活动背景图片
dell服务器心跳线
软件开发标书技术方案
域名与企业服务器
中央网络安全小组是
门禁管理服务器功率大小
理奥网络技术北京有限公司
如何用云服务器搭建可视化大数据
数据库data文件夹
传奇一人一个服务器
用友数据库端口
erp软件开发流程是怎样的
会议室系统数据库设计
数字水印在数据库中的应用
数据库中如何加字段
数据库应用技术在线测试
行政处罚移送信息数据库
微信软件开发合作协议
派出所网络安全宣传工作
数据库已存在表分区
家政软件开发系统装
产研数据库
太原火箭网络技术服务公司
魔兽世界服务器怎么回事
成绩查询系统 数据库