Lambda表达式
2016-06-04 21:44
483 查看
C#的Lambda 表达式都使用 Lambda 运算符 =>,该运算符读为“goes to”。语法如下:
形参列表=>函数体
函数体多于一条语句的可用大括号括起。
Lambda表达式写起来比较简洁,但是对于初学者来说确实是比较费劲的
从上面的例子中我们看到,我们不需要知道委托或者Lambda表达式到底做了什么,我们只要告诉委托或者Lambda表达式我们需要什么结果,但是具体的实现,由他们自己执行。
相对于委托来说,Lambda表达式确实简单多了。
接着上一次的继续更新 。。。。
我喜欢在代码中加注释,旁白写的少了一点。
形参列表=>函数体
函数体多于一条语句的可用大括号括起。
Lambda表达式写起来比较简洁,但是对于初学者来说确实是比较费劲的
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace LambdaDemo { class Program { static void Main(string[] args) { string[] names = { "agen","balen","coure","apple"}; //这是利用委托写的代码 string[] findnameArrA = Array.FindAll<string>(names, delegate(string v) { return v.StartsWith("a");}); //这是利用委托写的代码 string[] findnameArrB = Array.FindAll<string>(names,s=>s.StartsWith("a")); //这是利用委托写的代码 Console.WriteLine("findnameArrA.Count: " + findnameArrA.Length); //这是利用委托写的代码 Console.WriteLine("findnameArrB.Count: " + findnameArrB.Length); Console.ReadLine(); } } }
从上面的例子中我们看到,我们不需要知道委托或者Lambda表达式到底做了什么,我们只要告诉委托或者Lambda表达式我们需要什么结果,但是具体的实现,由他们自己执行。
相对于委托来说,Lambda表达式确实简单多了。
接着上一次的继续更新 。。。。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace LambdaDemo { class Program { static void Main(string[] args) { //单行代码 //如果只有一个参数,那么只写出参数名就足够了 Func<string, string> oneParam = s => String.Format("change uppercase{0}",s.ToUpper()); //如果委托使用的是多个参数,就把参数名放在花括号中,这里参数x,y的类型是double, Func<double, double, double> twoParam = (x, y) => x * y; Console.WriteLine(twoParam(5,9)); //多行代码 /*在这个Func<double, double, bool>尖括号里面, * 前两个是参数,最后一个是返回值 * bigerAndLittle 是这个lambda式子的名称,相当于方法名, * 后面一个=跟着(x, y),这是参数,=>后面跟着一个花括号,里面就是实现的具体方法 * */ Func<double, double, bool> bigerAndLittle = (x, y) => { bool flag = false; if (x > y) { flag = true; } else { flag = false; } return flag; }; Console.WriteLine(bigerAndLittle(9,8)); Console.ReadLine(); } } }
我喜欢在代码中加注释,旁白写的少了一点。
相关文章推荐
- iOS开发之C语言函数库
- 人月神话阅读笔记02
- In android studio,cannot load 2 facets-unknown facet type:android and android-gradle
- 一个程序猿菜鸟的心声
- 赢在职场-WEB全栈开发-1-8盒子模型
- java 线程中join的使用
- 【leetcode】1. Two Sum
- java.util.Dictionary源码分析
- 简单封装Http的Get和Post请求
- Linux 下tomcat的session共享
- 防丢App记录(2)--将序列号通过文件存储
- 设计模式之适配器模式
- UUencode 编码,UU编码介绍、UUencode编码转换原理与算法
- git学习笔记(持续更...)
- hdoj-4245-A Famous Music Composer
- Python抓取熊猫TV弹幕
- ACM学习历程—HihoCoder1309任务分配(排序 && 贪心)
- 326. Power of Three
- 周易六十四卦——大过卦
- 231. Power of Two