原作者

lambda表达式(lambda expression)实际上是匿名函数一种表示形式,

即没有函数名的函数:参数列表=>表达式或语句块,在我看来主要目是为了简化代码编写,提高代码可读性而提供的语法糖。

  C#中lambda表达式使用“=>”运算符表示,可读作“goes to”,

多参数多语句时用“(x,y)=>{语句块};”参数和语句块分别需要用小括号和大括号括起,

单参数单语句则可以“x=>语句;”无括号;无参数则表示为()=>表达式.

lamdba的每一次简写就是每一次C# framwork的升级,出现"=>"是C# 升级到了3.0版本了。

delegate void delegateLambda();
delegate void delegateLambda2(int x);
delegate void delegateLambda3(int x, int y);
private void btnCalculate_Click(object sender, EventArgs e)
{
delegateLambda lam = () => MessageBox.Show("无参数lambda表达式");
lam();
delegateLambda2 lam2 = x =>
{
MessageBox.Show("单一参数lambda表达式x=:" + x.ToString());
};
lam2();
delegateLambda3 lam3 = (x, y) =>
{
string result = (x + y).ToString();
MessageBox.Show(result);
};
lam3(, );
}

也可通过lambda表达式实现委托:

无论传统匿名方法还是Lambda 表达式实现的委托,

原理都是在编译过程中,创建了一个静态的方法实例委托的对象。

也就是说匿名方法和Lambda 表达式在CIL中都是采用命名方法实例化委托。

public partial class MainDisplay : Form
{
public MainDisplay()
{
InitializeComponent();
} List<Student> studentList = new List<Student>();
private void MainDisplay_Load(object sender, EventArgs e)
{
Student s1 = new Student() { Name = "张三", Id = "", age = , ClassId = "", Sex = "男" };
Student s2 = new Student() { Name = "李四", Id = "", age = , ClassId = "", Sex = "男" };
Student s3 = new Student() { Name = "王五", Id = "", age = , ClassId = "", Sex = "男" };
Student s4 = new Student() { Name = "赵六", Id = "", age = , ClassId = "", Sex = "女" };
studentList.Add(s1);
studentList.Add(s2);
studentList.Add(s3);
studentList.Add(s4);
} private void btnSearch_Click(object sender, EventArgs e)
{
List<Student> student=new List<Student>();
//查询年龄大于30的学生
student = studentList.Where(Stu => Stu.age > ).ToList();
foreach (Student stu in student)
{
MessageBox.Show(stu.Name);
}
}
} public class Student
{
public string Id { get; set; } public string Name { get; set; } public string Sex { get; set; } public int age { get; set; } public string ClassId { get; set; }
}

Lambda表达式(lambda expression)⭐⭐⭐⭐⭐的更多相关文章

  1. 委托、匿名委托、Lambda 表达式、Expression表达式树之刨根问底

    本篇不是对标题所述之概念的入门文章,重点在阐述它们的异同点和应用场景.各位看官,这里就不啰嗦了,直接上代码. 首先定义一个泛型委托类型,如下: public delegate T Function&l ...

  2. Lambda表达式 和 Expression<T>

    经常用的Lambda表达式 返回的是  Expression<T> 格式 public class ActivityService { private readonly List<A ...

  3. C#中Lambda表达式类型Expression不接受lambda函数

    在EF Core中我们经常会用System.Linq.Expressions系统命名空间的Expression<TDelegate>类型来作为EF Core的查询条件,比如: using ...

  4. JAVA 8 Lambda表达式-Lambda Expressions

    Lambda表达式介绍 Lambda表达式是在java规范提案JSR 335中定义的,Java 8 中引入了Lambda表达式,并被认为是Java 8最大的新特性,Lambda表达式促进了函数式编程, ...

  5. Java基础进阶:内部类lambda重点摘要,详细讲解成员内部类,局部内部类,匿名内部类,Lambda表达式,Lambda表达式和匿名内部类的区别,附重难点,代码实现源码,课堂笔记,课后扩展及答案

    内部类lambda重点摘要 内部类特点: 内部类可以直接访问外部类,包括私有 外部类访问内部类必须创建对象 创建内部对象格式: 外部类.内部类 对象名=new外部类().new内部类(); 静态内部类 ...

  6. 深入学习C#匿名函数、委托、Lambda表达式、表达式树类型——Expression tree types

    匿名函数 匿名函数(Anonymous Function)是表示“内联”方法定义的表达式.匿名函数本身及其内部没有值或者类型,但是可以转换为兼容的委托或者表达式树类型(了解详情).匿名函数转换的计算取 ...

  7. SqlHelper简单实现(通过Expression和反射)5.Lambda表达式解析类

    这个ExpressionHelper类,是整个SqlHelper中,最核心的一个类,主要功能就是将Lambda表达式转换为Sql语句.同时这个转换过程比较复杂,所以下面详细讲解一下思路和这个类的作用. ...

  8. Util应用程序框架公共操作类(七):Lambda表达式公共操作类

    前一篇扩展了两个常用验证方法,本文将封装两个Lambda表达式操作,用来为下一篇的查询扩展服务. Lambda表达式是一种简洁的匿名函数语法,可以用它将方法作为委托参数传递.在Linq中,大量使用La ...

  9. lambda表达式

    什么是Lambda表达式 lambda表达式,它将允许我们将行为传到函数里.在Java 8之前,如果想将行为传入函数,仅有的选择就是匿名类,需要6行代码.而定义行为最重要的那行代码,却混在中间不够突出 ...

随机推荐

  1. SVN:符号

    问号:未纳入SVN控制之下的新文件感叹号:已经修改过还没上传的文件红叉:准备删除尚未提交绿勾:从服务器上取下来没修改过的文件黄色感叹号:发生冲突蓝色加号:准备加到服务器上还没提交

  2. Vue 项目构建完成 ----发布项目

    发布项目 cmd  命令行 npm run build      执行打包文件 完成后就会有  3 个文件夹    分别是: 文件夹 :build     config      dist    in ...

  3. java 内存操作流

    操作内存流的时候(从读取出来,注意一定要把真正的数据用toByteArray或者toCharArray将数据读出来) 之前的文件操作流是以文件的输入输出为主的,当输出的位置变成了内存,那么就称为内存操 ...

  4. tf.squeeze()

    转载自:https://www.cnblogs.com/mdumpling/p/8053376.html 原型 tf.squeeze(input, squeeze_dims=None, name=No ...

  5. linux一个进程如何睡眠

    如果我们深入 <linux/wait.h>, 你见到在 wait_queue_head_t 类型后面的数据结构是非 常简单的; 它包含一个自旋锁和一个链表. 这个链表是一个等待队列入口, ...

  6. 【23.26%】【codeforces 747D】Winter Is Coming

    time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...

  7. flex布局属性说明

    flex布局又称为盒子布局或弹性布局,用来为盒状模型提供最大的灵活性,任何一个容器都可以指定为 Flex 布局. 给父容器添加display: flex/inline-flex;属性,即可使容器内容采 ...

  8. 纯CSS绘制的图形一览

    整理网上一些使用纯CSS绘制的图形示例~~纯属抄袭,哈哈...仅仅是为了自己以后查看! Square(正方形) #square { width: 100px; height: 100px; backg ...

  9. 将url传参的中文字符在页面中显示正常

    //将url传参的中文字符在页面中显示正常var url=decodeURI(url);

  10. Jquery xhr2跨域

    相关享目托管在github: https://github.com/devgis/CSharpCodes