C#中Lambda表达式如何使用
发表于:2025-01-16 作者:千家信息网编辑
千家信息网最后更新 2025年01月16日,本篇内容介绍了"C#中Lambda表达式如何使用"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、介
千家信息网最后更新 2025年01月16日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 ListPersonsList() { 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) { Funcgwl = (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安全错误
数据库的锁怎样保障安全
sr850服务器默认管理口
软件开发用哪款笔记本好
深圳软件开发招聘DPDK
网络安全政策法律2020年
中国人民解放军医院数据库名称
软件开发的发票税点
服务器集群管理软件谁家有
数据库json类型有什么用
网络技术挣钱
河南森牧网络技术有限公司
服务器 设置双ip
数据库能联网查询吗
数据库创建数据表姓名性别年龄
多维度提高网络安全等级
一点资讯知微数据库
数据库资源
育碧官方服务器维护
app数据抓包不传回服务器
网络安全发展现状
迪普科技网络安全
辽宁省网络安全协会会长
sr850服务器默认管理口
一台服务器的功率多大
数据库学生排名
观网络安全知识讲座观后感
福州纵腾网络技术深圳
数据库食物特性
什么才是网络安全知识
数据库共享吗
网络安全万人培训