lambda运算符
时间:2019-09-26
本文章向大家介绍lambda运算符,主要包括lambda运算符使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
lambda运算符:所有的lambda表达式都是用新的lambda运算符 " => ",可以叫他,“转到”或者 “成为”。运算符将表达式分为两部分,左边指定输入参数,右边是lambda的主体。
lambda表达式:
1.一个参数:param=>expr
2.多个参数:(param-list)=>expr
实例
1 namespace 阐述lambda 2 { 3 public class Person 4 { 5 public string Name { get; set; } 6 public int Age { get;set; } 7 } 8 class Program 9 { 10 11 public static List<Person> PersonsList() 12 { 13 List<Person> persons = new List<Person>(); 14 for (int i = 0; i < 7; i++) 15 { 16 Person p = new Person() { Name = i + "儿子", Age = 8 - i, }; 17 persons.Add(p); 18 } 19 return persons; 20 } 21 22 static void Main(string[] args) 23 { 24 List<Person> persons = PersonsList(); 25 persons = persons.Where(p => p.Age > 6).ToList(); //所有Age>6的Person的集合 26 Person per = persons.SingleOrDefault(p => p.Age == 1); //Age=1的单个people类 27 persons = persons.Where(p => p.Name.Contains("儿子")).ToList(); //所有Name包含儿子的Person的集合 28 } 29 } 30 }
正常使用和lambda运算符的区别
//委托 逛超市 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; }
//委托 逛超市 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(); }
还可以多参数和复杂运算
1 /// <summary> 2 /// 委托 逛超市 3 /// </summary> 4 /// <param name="a">花费</param> 5 /// <param name="b">付钱</param> 6 /// <returns>找零</returns> 7 delegate int GuangChaoshi(int a,int b); 8 static void Main(string[] args) 9 { 10 GuangChaoshi gwl = (p, z) => 11 { 12 int zuidixiaofei = 10; 13 if (p < zuidixiaofei) 14 { 15 return 100; 16 } 17 else 18 { 19 return z - p - 10; 20 } 21 22 }; 23 Console.WriteLine(gwl(10,100) + ""); //打印80,z对应参数b,p对应参数a 24 Console.ReadKey(); 25 }
原文地址:https://www.cnblogs.com/tiredxin/p/11592844.html
- 深入理解C#3.x的新特性(4):Automatically Implemented Property
- 增加网卡注意点
- 深入理解C# 3.x的新特性(1): Anonymous Type
- Linux基础(day65)
- 18.12 keepalived + LVS
- 学会JS只是知道了“是什么”,并不意味着你会用JS做什么
- Linux基础(day68)
- 启动zabbix 报错
- 深入理解C# 3.x的新特性(2):Extension Method[上篇]
- 深入理解C# 3.x的新特性(2):Extension Method[下篇]
- 19.13/19.14 配置邮件告警
- 19.12 添加自定义监控项目
- [原创]深入理解C# 3.x的新特性(3):从Delegate、Anonymous Method到Lambda Expression
- a=b=c,但a不等于c?这是什么鬼
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Python+selenium 自动化-滚动的使用方法,如何滚动到元素的位置
- 恕我直言你可能真的不会java第10篇-集合元素归约
- Python+selenium 自动化-模拟键盘输入、点击操作,如何查看所支持的全部键位名称
- Uber为什么放弃Postgres选择迁移到MySQL?
- BAT 批处理命令 - 文件批量复制、克隆功能实例演示
- 【35期】谈谈你对Java线程之间通信方式的理解
- mac 技术篇-修改hosts文件,hosts文件位置
- 一行能装逼的 JavaScript 代码
- python 技术篇-时间戳的获取,记录程序处理时间
- 基于SpringBoot AOP面向切面编程实现Redis分布式锁
- Python+Selenium 技巧篇-svg标签内元素的xpath定位方式
- 小书MybatisPlus第5篇-Active Record模式精讲
- Python 语法问题-module ‘pip._internal‘ has no attribute ‘pep425tags‘. 原因及解决办法,32位、64位查看pip支持万能方法
- 总在说 Spring Boot 内置了 Tomcat 启动,那它的原理你说的清楚吗?
- JavaScript 技巧篇-js增加延迟时间解决单击双击事件冲突,双击事件触发单击事件