1.linq查询表达式必须以form开头,并且必须以select或group子句结束,中间可以添加多个子句
例如:var list = from num in nums where num%2!=0 orderby num descending select num;
2.双重/多重 from语句
例如:查询成绩包含95分以上的学员
var res = from stu in students
from score in stu.scoreList
where score>=95
select stu
查询2个平行表中的学号>1000的学生
var res = from stu1 in list1 where stu1.StuId > 1000
from stu2 in list2 where stu2.StuId > 1000
select new { stu1,stu2 }
3.ThenBy,通过函数进行排序的方式
例如:按照学号,姓名,年龄进行排序:
1.linq语法方式:
var res = from stu in stuList orderby stu.ID,stu.Name,stu.Age select stu;
2.linq函数方式:
var res = res = stuList.OrderBy(s=>s.ID).ThenBy(s=>s.Name).ThenBy(s=>s.Age).Select(p=>p);
4.Take,Skip 与 TakeWhile,SkipWhile的区别
解析:Take:提取指定数量的项
Skip:跳过指定数量的项,并获取剩余的量
TakeWhile:只要满足指定的条件,就会 返回序列的元素,然后跳过剩余的元素
SkipWhile:只要满足指定的条件,就跳过序列中的元素,然后返回剩余元素
例如:int[] nums = {1,2,3,4,5,6,7,8,9};
var res1 = nums.Take(1).Skip(3);//跳过1条取3条:输出结果就是:2,3,4
var res2 = nums.TakeWhile(i=>i%3!=0)//这里会拿到124578
.TakeWhile(i=>i%2!=0);//这里会取到1,5,7