LINQ、Lambda与委托
首先定义个Person类:
public class Person
{
public string Name{get;set;} //姓名
public int Age{get;set;} //年龄
}
定义好List,并添加几条数据:
List<Person> lstPerson=new List<Person>();
lstPerson.Add(new Person(){Name="Amy",Age=});
lstPerson.Add(new Person(){Name="Jerry",Age=});
lstPerson.Add(new Person(){Name="Tom",Age=});
lstPerson.Add(new Person(){Name="Bill",Age=});
写linq查询或lambda查询:
var linq = from item in lstPerson
where item.Age>
select item; //(返回一个非List类型的集合,找到年龄大于18的记录) var lambda = lstPerson.Where(item => item.Age > );
最后讲LINQ查询出的结果转换成List或Array:
List<Person> selectList=linq.ToList(); //通过ToList()或ToList<Person>()转换成List. Array selectArr=linq.ToArray(); //通过ToArray()或ToArray<Person>()转换成Array.
委托:
首先定义委托类型:
public delegate int FirstDele(int a); //需要在类中定义,和方法在同一级别
接着有意思的事情来了:
传统的委托需要一个方法,方法的返回值类型和参数个数、类型必须和委托相同,如:
public int Add(int num)
{
return num + ;
}
然后在需要用委托的地方写:
FirstDele addDele = new FirstDele(Add);//实例化一个委托
int result = addDele();//调用
这些代码没有问题,只是略微有些复杂,这时候我们的Lambda表达式发挥奇效了:
FirstDele fir = p => p + ;
int result = fir();
就这么两句,好神奇!!
LINQ、Lambda与委托的更多相关文章
- lambda和委托
Lambda 简介 Lambda 表达式是一种可用于创建委托或表达式目录树类型的一种匿名函数(匿名方法+Lambda).通过使用 lambda 表达式,可以写入可作为参数传递或作为函数 调用值返回的本 ...
- ASP.NET EF(LINQ/Lambda查询)
EF(EntityFrameWork) ORM(对象关系映射框架/数据持久化框架),根据实体对象操作数据表中数据的一种面向对象的操作框架,底层也是调用ADO.NET ASP.NET MVC 项目会自动 ...
- lambda和委托那点事
Lambda 简介 Lambda 表达式是一种可用于创建委托或表达式目录树类型的一种匿名函数(匿名方法+Lambda).通过使用 lambda 表达式,可以写入可作为参数传递或作为函数 调用值返回的本 ...
- [算法1-排序](.NET源码学习)& LINQ & Lambda
[算法1-排序](.NET源码学习)& LINQ & Lambda 说起排序算法,在日常实际开发中我们基本不在意这些事情,有API不用不是没事找事嘛.但必要的基础还是需要了解掌握. 排 ...
- SQL,LINQ,Lambda语法对照图(转载)
如果你熟悉SQL语句,当使用LINQ时,会有似曾相识的感觉.但又略有不同.下面是SQL和LINQ,Lambda语法对照图 SQL LINQ Lambda SELECT * FROM HumanReso ...
- c# linq lambda 去重,排序,取最高纪录。
----------------------------------------------------.对基础类型排序 方法一: 调用sort方法,如果需要降序,进行反转: List<int& ...
- Lambda与委托
Lambda 表达式是一个可用于创建委托或表达式树类型的匿名函数. 通过使用 lambda 表达式,可以可作为参数 或 返回为函数调用值的本地函数.Lambda 表达式对于编写 LINQ 查询表达式特 ...
- Linq lambda 匿名方法
课程6 委托.匿名方法.Lambda表达式.Linq查询表达式 上课日志1 一.委托的基本认识 提问:能不能把方法作为参数传递??? 也即是能不能声明一个能存放方法的变量呢——委托. 委托是一种数据类 ...
- linq lambda let
1.linq let用法 var query = from x in db.Users let theage = x.age let sexstring = x.sex ? "男" ...
随机推荐
- Android初级教程理论知识(第八章网络编程二)
HttpClient 发送get请求 创建一个客户端对象 HttpClient client = new DefaultHttpClient(); 创建一个get请求对象 HttpGet hg = n ...
- Java正则表达式小记
http://blog.csdn.net/pipisorry/article/details/51059500 正则表达式的一般规则都一样,见[python正则表达式] java正则表达式中的特殊字符 ...
- web中间件切换(was切tomcat)
一.数据源迁移: ①数据源配置在web容器还是在项目本身? 根据开发与生产分离原则选择配置到web容器,以免开发泄露数据库密码. ②数据库密码加密 原先was的数据源直接在console控制,密码是密 ...
- 银联在线 网关支付 (JAVA版)
这一版本的编写是在我上一次博客的基础上写的,有不懂得童鞋可以先看下我的原先在线支付的博客,熟悉下:http://blog.csdn.net/yulei_qq/article/details/45197 ...
- golang:一个高性能低精度timer实现
在go自带的timer实现中,采用的是通常的最小堆的方式,具体可以参见这里. 最小堆能够提供很好的定时精度,但是,在实际情况中,我们并不需要这样高精度的定时器,譬如对于一个连接,如果它在2分钟以内没有 ...
- shell脚本中调用另一个脚本的三种不同方法(fork, exec, source)
fork ( /directory/script.sh) fork是最普通的, 就是直接在脚本里面用/directory/script.sh来调用script.sh这个脚本. 运行的时候开一个sub- ...
- ios swift模仿qq登陆界面,xml布局
给大家推荐两个学习的地址: 极客学院的视频:http://www.jikexueyuan.com/path/ios/ 一个博客:http://blog.csdn.net/lizhongfu2013/a ...
- HTML5进阶(三)HBuilder实现软件自动升级(优化篇)
HBuilder实现软件自动升级(优化篇) 前言 受前篇博客<HTML5进阶(二)HBuilder实现软件自动升级>(点击查看详情)的影响,测试过程中发现APP自动更新还是存在问题,第一次 ...
- Volley学习小结
1.概述 volley英文即是"齐射,并发",是谷歌在2013年推出的网络通信库,有如下特点: [1]通信更快,更简单 [2]Get.Post网络请求以及网络数据图像的高效的异步请 ...
- 使用HTML5抓取 Audio & Video
原文地址: http://www.html5rocks.com/en/tutorials/getusermedia/intro/ 本地化的文章: http://www.html5rocks.com/z ...