首先定义个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);
就这么两句,好神奇!!