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