‫好吧, 我会的
‫所以我们在上一节课中看到了匿名方法如何帮助我们在需要委托的地方写代码块｡
‫升C调3｡ 引入了0个lambda表达式｡
‫它们提供了一个简单且更紧凑的函数语法来编写匿名方法｡
‫lambda一词取自lambda演算, 在lambda演算中, 一切都用函数来表示｡
‫我们将使用lambda表达式来创建匿名函数和方法｡
‫要创建一个lambda表达式, 我们需要使用Lambda Declaration运算符, 它等于大于等于, 也读作goes
‫into或goes to, 以将lambda参数列表从其主体中分离出来｡
‫Lambda表达式可以具有以下两种形式之一｡
‫首先, 一个表达式lambda, 它有一行代码作为它的主体｡
‫所以输入参数等于大于表达式｡
‫然后我们有一个语句, lambda有一个语句｡
‫BLOCK执行多行代码作为其主体｡
‫这里我们只使用输入参数equal, greater, 然后是花括号内的语句序列｡
‫现在让我们来看看实际情况｡
‫所以现在回到我们之前的例子, 让我们添加一些使用lambda表达式的过滤器｡
‫这里我们有一个过滤器, 我们现在向所有人展示, 让我们继续创建一个搜索关键字,
‫我将把它称为一个好吗？
‫所以我只需要调用更多的字母搜索, 然后再一次调用Display People方法.
‫我将显示所有H值大于20的搜索关键字｡
‫这意味着我们要找的是年龄超过20岁但名字中有A的人｡
‫让我们继续, 并通过将此搜索关键字添加到此处的语句中来实现这一点｡
‫所以这基本上只是标题｡
‫好吗？
‫这是我们的display people方法的标题,
‫这里的字符串就是我们想要遍历或检查以过滤的人员列表｡
‫现在我们传入之前创建的人员列表, 就是上面的这个列表, 人员列表,
‫我们有四个人.
‫现在我们有了人, 让我们继续, 实际使用我们的lambda表达式｡
‫所以我要传入参数P, 然后在里面运行下面的表达式｡
‫当然, 我需要用一个感叹号来结束这条语句, 但是现在让我们实际执行一些代码｡
‫所以我在这里用了一个lambda表达式, 而不是匿名方法, 而不是传递一个方法so,
‫也就是说这些都是参数.
‫等于大于, 这只是一个参数, 所以不用括号也行.
‫否则我就得在这里用括号把它括起来｡
‫然后我就可以继续做我想做的事了｡
‫我要执行的是什么？
‫好吧, 我只是要检查名称是否包含某个关键字, 也就是我们的搜索关键字｡
‫如果name包含搜索关键字并且年龄大于20, 那么这个人就是我们正在检查的个人, 如果大于20,
‫那么返回true.
‫因为如果我们看它我们的｡
‫筛选我们现在正在替换的代理, 或者我们现在正在传递的位置｡
‫我们的lambda表达式需要布尔值｡
‫正如我们在这里看到的, 当我们第一次设置它｡
‫好吧, 我会的
‫当然, 现在我们还需要在这里添加一个else块｡
‫否则我们就返回false｡
‫所以返回false, 就这样｡
‫所以现在没有问题了｡
‫这里我们基本上已经用了lambda, 顺便说一下, 这是我们要用的lambda语句｡
‫让我在这里补充一点描述｡
‫语句lambda, 我们有了搜索关键字｡
‫我们检查该人是否包含搜索关键字和H.
‫好吧, 我会的
‫现在让我们看同样的事情｡
‫所以在lambda表达式中｡
‫但是现在我们来看看表达式lambda, 而不是语句lambda｡
‫好的方面是代码会更短｡
‫让我们继续, 假设我们要显示刚好25岁的人｡
‫好吧, 我会的
‫所以我们就这么做吧｡
‫我们将筛选人员列表｡
‫这里我要用一个lambda表达式｡
‫所以我会说p等于, 大于, 其中p, h等于25, 就是这样｡
‫原来如此简单｡
‫这是我们的表达式lambda｡
‫美妙之处在于它只有一行代码, 这就是表达式lambdas的强大功能｡
‫所以在这里, 我们不需要创建一个额外的方法,
‫也不需要创建一个匿名的方法, 我们只需要使用一个表达式lambda, 只需要一行代码, 我们基本上实现了和我们在这里用过滤器实现的一样的东西｡
‫对不对？
‫这就是lambdas表达的美妙之处｡
‫现在如果我们运行这个程序, 我们会得到这样的结果, Anatoliy是25岁, Aiden也是20岁,
‫用搜索关键字创建的｡
‫你说呢？
‫这两个人在这里｡
‫那谁正好25岁
‫那只是安纳托利｡
‫哦, 差不多就是这样｡
‫所以我希望你喜欢这个系列的这一部分｡
‫在下一个视频中, 我们将了解事件和多播委托｡
‫那到时见｡