LINQ两个集合联合查询

4 篇文章 0 订阅

LINQ两个集合联合查询

集合一
在这里插入图片描述
集合二
在这里插入图片描述

写法一

 var getHaveStock = (from a in pushGroup
                    join b in getOwnerStockGroup
                    on a.Mater equals b.Mater
                    into result
                    from c in result.DefaultIfEmpty()
                    select new
                    {
                        Mater = a.Mater,
                        Qty = a.Qty,
                        StockQty = c==null?0: c.StockQty
                    }).ToList();
getHaveStock = getHaveStock.Where(s => s.StockQty > s.Qty).ToList();

在这里插入图片描述

写法二

   var getHaveStock1 = (from a in pushGroup
						join b in getOwnerStockGroup
						on a.Mater equals b.Mater
						// where b.StockQty>a.Qty
						into result
						from c in result.DefaultIfEmpty()
						where (c==null?0: c.StockQty) > a.Qty
						select new
						{
							Mater = c.Mater,
							Qty = a.Qty,
							StockQty = c.StockQty
						}).ToList();

结果序列是 将左侧集合中元素 和右侧数据集中的一个或多个匹配元素相关联,如果在右侧元素中找不到与左侧元素数据集中元素相匹配的元素,则join子句会为该项产生一个空数组。

写法三

var list = (pushGroup.Join(getOwnerStockGroup, T1 => T1.Mater, T2 => T2.Mater, (T1, T2) => new {
    Mater = T1.Mater,
    Qty = T1.Qty,
    StockQty = T2.StockQty
})).ToList();
  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值