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 group orderby order.shipCountry //group⼦句返回的是⼀个集合 Dictionary 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) 晚上有空再来写。。。。。。。。。。。 因篇幅问题不能全部显示,请点此查看更多更全内容