Linq 用法解析---其他(All,Any……)

本示例是基于northwind数据库的

  • Any用法:返回的是true或者false,用于判断是否存在

目的:查找第二三条customer的city是否已A开头,如果有就将这些city提出

var v =(from n in entities.Customers
                      let z=         //创建一个条件,用于判断是否存在,最为后面的条件
                      (from u in entities.Customers
                       orderby u.City
                       select u.City).Skip(1).Take(2).Any(c=>c.StartsWith("a"))
                       where z&&n.City.Length>3
                       select n.City).Take(3);
  • ALL用法:用于判断一个集合中的所有元素是否都满足某一条件,返回true或者false

目的:查找所有订单中的产品都打折的订单,并打印出订单ID,对应的product的ID,以及打折信息

var q = from u in entities.Orders
                       where u.Order_Details.All(c => c.Discount > 0)
                       orderby u.OrderID
                       select new
                       {
                           u.OrderID,
                           ProductIDS = from n in u.Order_Details
                                        orderby n.ProductID
                                        select new
                                        {
                                            n.ProductID,
                                            n.Discount
                                        }
                       };
//打印相应的信息
foreach (var item in q)
               {
                   Console.WriteLine("所有产品都打折的order的ID是:" 
                       + item.OrderID);
                   foreach (var subItem in item.ProductIDS)
                       Console.WriteLine("打折产品ID:" + subItem.ProductID 
                           + "\t" + "打折:" + subItem.Discount);
               }


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值