lamda表达式学习
来源:互联网 发布:淘宝达人范文 编辑:程序博客网 时间:2024/06/05 14:40
lamda表达式
格式:( 形参列表 ) => { 函数体 }
作用:简化匿名方法的书写,可用在任何可使用匿名方法和强类型代理的地方;
例子:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace lamda_expression
{
class Program
{
public delegate string mydelegate(string s);
static void Main(string[] args)
{
mydelegate d1;
d1 = delegate(string myarg) { Console.WriteLine("anonymous method output: {0}", myarg); return "anonymous method done"; };
d1 += ((string myarg) => { Console.WriteLine("lamda expression output: {0}", myarg); return "lamda ok"; });
Console.WriteLine("d1 output: {0}", d1("arg"));
}
}
}
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace lamda_expression
{
class Program
{
public delegate string mydelegate(string s);
static void Main(string[] args)
{
mydelegate d1;
d1 = delegate(string myarg) { Console.WriteLine("anonymous method output: {0}", myarg); return "anonymous method done"; };
d1 += ((string myarg) => { Console.WriteLine("lamda expression output: {0}", myarg); return "lamda ok"; });
Console.WriteLine("d1 output: {0}", d1("arg"));
}
}
}
输出:
anonymous method output: arg
lamda expression output: arg
d1 output: lamda ok
lamda expression output: arg
d1 output: lamda ok
1. 普通绑定:
public void button1_Click(object sender, EventArgs e) { MessageBox.Show("ok"); }this.button1.Click += button1_Click;
2. 匿名委托:
this.button1.Click += delegate(object sender, EventArgs e) { MessageBox.Show("Click"); };
3. LAMDA表达式:
this.button1.Click += ((sender, e) => { MessageBox.Show("Click"); } );
编译器会自动推算出表达式中的类型。
4. 过滤条件:
List<User> users = new List<User>(); Func<User, bool> predicate = ( (user) => { return user.UserId > 100; } ); List<User> temps = users.Where(predicate).ToList();
等同于:
List<User> temps = users.Where(p => p.UserId > 100).ToList();
List<User> temps = (from p in users where p.UserId > 100 select p).ToList();
List<User> users = new List<User>(); Func<User, bool> predicate = ( (user) => user.UserId > 100 ); List<User> temps = users.Where(predicate).ToList();
单挑语句时不需要使用{},同时可以不使用return来返回结果。
5. 排序:
List<User> users = new List<User>(); List<User> temp1 = users.OrderBy(p=>p.UserId).ToList(); Func<User, int> orderby = (user => user.UserId); List<User> temp2 = users.OrderBy(orderby).ToList();
0 0
- C# lamda表达式学习
- C# lamda表达式学习
- LAMDA表达式学习
- lamda表达式学习
- C# lamda表达式学习
- lamda表达式学习
- Lamda表达式学习
- 【python学习笔记】lamda表达式
- lamda表达式
- lamda表达式
- Lamda表达式
- lamda表达式
- lamda表达式
- Lamda表达式 委托 匿名委托 Lamda表达式
- delegate及 lamda表达式
- 简单实用lamda表达式
- python的lamda表达式
- Python中的 lamda表达式
- PHP验证码之数字运算验证码
- JAVA反射机制之ClassLoader
- 小白学开发(iOS)OC_私有方法(2015-07-28)
- PHP中命名空间的创建-使用namespace
- exfat文件系统(三)
- lamda表达式学习
- 多校 hdu
- redis内存优化
- Ubuntu 彻底删除 Mysql 然后重装 Mysql
- uboot 环境变量设置研究
- 制作一个带SNTP的智能手表
- 淘宝卖家评价体系
- oracle 中如何获取本机ip地址,根据IP地址获取域名?
- html中设置锚点定位的几种常见方法