码迷,mamicode.com
首页 > 其他好文 > 详细

LINQ、Lambda与委托

时间:2014-06-20 15:51:08      阅读:251      评论:0      收藏:0      [点我收藏+]

标签:style   class   blog   code   tar   color   

 首先定义个Person类:

1 public class Person
2 {
3  public string Name{get;set;} //姓名
4  public int Age{get;set;} //年龄
5 }

 

定义好List,并添加几条数据:

1 List<Person> lstPerson=new List<Person>();
2 
3 lstPerson.Add(new Person(){Name="Amy",Age=16});
4 
5 lstPerson.Add(new Person(){Name="Jerry",Age=26});
6 
7 lstPerson.Add(new Person(){Name="Tom",Age=18});
8 
9 lstPerson.Add(new Person(){Name="Bill",Age=18});

 

 写linq查询或lambda查询:

  var linq = from item in lstPerson
         where item.Age>18
         select item;  //(返回一个非List类型的集合,找到年龄大于18的记录)
 
  var lambda = lstPerson.Where(item => item.Age > 18);

 

 

 最后讲LINQ查询出的结果转换成List或Array:

1 List<Person> selectList=linq.ToList(); //通过ToList()或ToList<Person>()转换成List.
2 
3 Array selectArr=linq.ToArray(); //通过ToArray()或ToArray<Person>()转换成Array.

 

 

委托:

首先定义委托类型:

public delegate int FirstDele(int a); //需要在类中定义,和方法在同一级别

接着有意思的事情来了:

  传统的委托需要一个方法,方法的返回值类型和参数个数、类型必须和委托相同,如:

public int Add(int num)
{
   return num + 100;
}

  然后在需要用委托的地方写:

FirstDele addDele = new FirstDele(Add);//实例化一个委托
int result = addDele(10);//调用

 

 

这些代码没有问题,只是略微有些复杂,这时候我们的Lambda表达式发挥奇效了:

FirstDele fir = p => p + 100;
int result = fir(10);

 

就这么两句,好神奇!!

 

 

LINQ、Lambda与委托,布布扣,bubuko.com

LINQ、Lambda与委托

标签:style   class   blog   code   tar   color   

原文地址:http://www.cnblogs.com/dengshaojun/p/3796789.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!