首页 > 代码库 > LINQ、Lambda与委托
LINQ、Lambda与委托
首先定义个Person类:
1 public class Person2 {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);
就这么两句,好神奇!!
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。