欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

学习LinQ(一)

程序员文章站 2022-07-04 09:09:40
...

from子句

 from type item in item

where子句

from type item in item
where item.id==1

Join级联

from s in students
join c in courses on s.stId equals c.stId

注意和sql的差别不是== 而是equals

let子句

let子句接受一个表达式的运算并且把它赋值给一个需要在其他运算中使用的标识符,它是from…let…where片段中的一部分

var query = from a in groupA
   from b in groupB
   let sum = a + b
   where sum < 12
   select new(a,b,sum);

orderby子句

语法: orderby Expression ascending or descending 二选一 默认ascending

var query = from s in students
      join c in courses on s.stId equals c.stId
      where c.courseName == "history"
               orderby s.stuName  //排序
      select s.stuName;

group子句

from student in students
   group student by student.major;

select 子句

select子句指定所选定的对象哪部分应该被选择。可以指定下面的任意一项

a: 整个数据项
b: 数据项的一个字段
c: 数据项中几个字段组成的新对象(或类似其他值)

var query = from s in students
      select s; //整个数据项
 
   var query = from s in students
      select s.stuName; //s中的一个字段
 
   var query = from a in groupA
      from b in groupB
      let sum = a + b
      where sum < 12
      select new (a, b, sum);  //a,b,sum组成的新字段

聚合函数

求和:sum
最大值:max
最小值:min
平均值:Average
去重:distinct
相乘:Aggregate
计数:count

相关标签: c# linq