之前提到满足一定条件的数据都可以成为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 students
where stu.Gender == Gender.Male
select stu;
//2、转换数据源
var schoolStudent= from stu in students
where stu.Gender == Gender.Male
select new{
Shool="科学实验小学",
Name=stu.Name,
Age=stu.Age,
Gender=stu.Gender
};
//3、获取数据源相关的信息
var studentCount=(from stu in students
where stu.Gender == Gender.Male
select stu).Count();
var studentCount2 =student2.Count();
注意:在转换用法中,查询变量的定义类型。因为select后面是一个匿名变量,所以这里使用了var。
在第3种使用用途中,第1种写法的在查询语句外有个括号。2种写法,选择自己顺手的。