之前提到满足一定条件的数据都可以成为LINQ的数据源,那么条件是什么?
实现接口 IEnumerable<T> 或IQueryable<T>,满足其一就可以使用LINQ。
使用LINQ对数据源可以做以下几类事:
1、获取数据源的一部分
2、获取数据源的一部分并转换为新数据源
3、获取数据源(或者由1,2得到的新数据源)的某些属性
IEnumerable<T> 和IQueryable<T>相关内容比较丰富足够写一个总结了。这里只聊聊实际应用。
一些示例展示了基本的用法
var students = new List<Student>(){new Student{Age=20,Name="李明",Gender=Gender.Male},new Student{Age=21,Name="赵雷",Gender=Gender.Male},new Student{Age=20,Name="韩小梅",Gender=Gender.Female},new Student{Age=19,Name="王蕾",Gender=Gender.Female},};//1、获取部分数据源var student = students.Where(stu => stu.Gender == Gender.Male);//方法形式var student2 = from stu in studentswhere stu.Gender == Gender.Maleselect stu;//2、转换数据源var schoolStudent= from stu in studentswhere stu.Gender == Gender.Maleselect new{Shool="科学实验小学",Name=stu.Name,Age=stu.Age,Gender=stu.Gender};//3、获取数据源相关的信息var studentCount=(from stu in studentswhere stu.Gender == Gender.Maleselect stu).Count();var studentCount2 =student2.Count();
注意:在转换用法中,查询变量的定义类型。因为select后面是一个匿名变量,所以这里使用了var。
在第3种使用用途中,第1种写法的在查询语句外有个括号。2种写法,选择自己顺手的。