您的当前位置:首页正文

Linq查询语句

来源:爱够旅游网
Linq查询语句

LINQ表达式要点:1 linq表达式要以from开头

2 必须是select⼦句或者是group⼦句结尾

3 from⼦句, where⼦句,select⼦句,group⼦句, into⼦句,排序⼦句,let⼦句, join⼦句4 ⼦句⽰例:

4.1 from 变量名 in 数据源 where 条件 select 变量名where⼦句是⽤来筛选元素select⼦句是⽤来输出元素

例如:var ordersByCountry=from order in orders

where order.ShipCountry.Equels(country) select order;

4.2 排序⼦句 OrderBy OrderBy.......Descending例如:var OrderBy=from order in Orders

where order.shipCountry.equals(country) orderby order.shipCountry, orderby order.fregith descending select order;

4.3 group⼦句 group⼦句返回的是⼀个基于IGroup繁星接⼝的对象序列例如:var orderGroup=from order in Orders

group orderby order.shipCountry //group⼦句返回的是⼀个集合

  Dictionary> orderList=new Dictionary();//效率不⾼    foreach(var or in orderGroup){

orderlist.add(or.key,or.ToList()); }

4.4 join⼦句: 如果数据源中的⼀个元素和另外⼀个数据源中的元素相等,这两个数据源可以⽤join⼦句进⾏关联(表连接) join⼦句是⽤equals关键字进⾏⽐较的,⽽不是常⽤的==(双等于号)。    var OrdersJoinCustomer=from order in Orders join customer in Customer

on order.customerId equals customer.customerId select new {

orderId=order.OrderId,

customerId=customer.customerId, companyName=customer.companyName };

4.5 into⼦句:into⼦句提供⼀个临时标识符,它存储了into⼦句前⾯查询的结果,是后⾯⼦句可以⽅便的使⽤,可以对其进⾏查询,排序,投影等操作。 

        var OrdersJoinCustomer=from order in Orders join customer in Customer on order.customerId equalscustomer.customerId

select new {

                            orderId=order.OrderId, customerId=customer.customerId, companyName=customer.companyName }

into ord orderby customer.companyName select ord;

4.6 let⼦句:let⼦句能创建⼀个临时变量,⽤来存储linq表达式中表达式的计算结果。需要注意的是:⼀旦临时变量被创建,就不能被修改。

      string shipCountry=\"adadwakw\";      var orderLet=from order in Orders

let s=order.shipCountry.Substring(0,1) where s=shipCountry select order;

5 linq to object (延迟查询)    限定操作符(where) 投影操作符(select/selectMany)

分区操作符(take/takeWhile/skin/skinWhile)    串联操作符(concat)

排序操作符(orderby/orderbyDescending/thenby/thenbyDescending/reverse/ )    连接操作符(join / groupJoin)    分组操作符(GroupBy)

集合操作符(Distinct/Union/intersect/Except)    转换操作符(cast/ofType/asEnumberale)    元素操作符(DefaultEmpty)    ⽣成操作符(Range/Repeat/Empty)

晚上有空再来写。。。。。。。。。。。      

因篇幅问题不能全部显示,请点此查看更多更全内容