星空网 > 软件开发 > ASP.net

二段Linq Groupby操作

var messages = list.GroupBy(p=>p.RefOrderNo,(k,v)=> new {OrderNo = k,SkuInfo = v})          .Select(p =>          {            var item = p.SkuInfo.FirstOrDefault();            return new ReplaceLabelSkuMessage            {              OrderNo = p.OrderNo,              Operation = new WMS.Message.Operation              {                Operator = item.CreateBy,                OperateTime = item.CreateOn              },              ReplaceLabelSkuDetail = p.SkuInfo.Select(s => new ReplaceLabelSkuDetail              {                SKU = s.SKU,                Weight = s.Weight,                Lenght = s.Lenght,                Width = s.Width,                Height = s.Height              }).ToList()            };                      });

var request = deliveryList.GroupBy(g => g.DeliveryNo)          .Select(delivery =>          {            var item = delivery.FirstOrDefault();            var yewuRequest = new DeliveryTicketShipOutMessage            {              DeliveryTicketNo = item.DeliveryNo,              DeliveryType = TMS.Message.DeliveryTicket.DeliveryType.Logistics,              WarehouseCode = item.YewuWarehouseCode,              ShipOutWarehouse = item.YewuWarehouseCode,              SkuContainers = delivery.GroupBy(g => g.ContainerCode).Select(container =>              {                var containerLine = container.FirstOrDefault();                return new LogisticsDeliveryShipOutCustomerAsnContainerRequest                {                  ContainerId = containerLine.ContainerCode,                  customerOrderType = TMS.Message.Common.CutomerOrderType.First,                  TargetWarehouseCode = containerLine.TargetWarehouseCode,                  CustomerAsnId = containerLine.CustomerAsnId,                  PalletId = containerLine.PalletId,                  Weight = new Weight { Value = containerLine.Weight, Unit = WeightUnit.G },                  Size = new Packing() { Length = containerLine.Length, Width = containerLine.Width, Height = containerLine.Height, Unit = LengthUnit.CM },                  Lines = container.GroupBy(l => l.SKU).Select(line =>                  {                    return new LogisticsDeliveryShipOutCustomerAsnContainerLineRequest                    {                      SKU = line.Key,                      Quantity = line.Sum(s => s.PackingQty),                      AccountNo = line.FirstOrDefault().CustomerCode                    };                  }).ToList(),                  Bags = container.Where(p => p.BagCode.Length > 0).GroupBy(g => g.BagCode).Select(bag =>                  {                    var bagid = bag.Key;                    return new LogisticsDeliveryShipOutCustomerAsnContainerBagRequest                    {                      BagId = bagid,                      Lines = bag.Select(bagline => new LogisticsDeliveryShipOutCustomerAsnContainerBagLineRequest                      {                        SKU = bagline.SKU,                        Quantity = bagline.PackingQty,                        AccountNo = bag.FirstOrDefault().CustomerCode                      }).ToList()                    };                  }).ToList()                };              }).ToList(),              OperateBy = item.CreateBy,              OperateOn = item.CreateOn            };            return yewuRequest;          }).ToList();

 




原标题:二段Linq Groupby操作

关键词:linq

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

土耳其B2C电商规模或达270亿美元,独立站是切入点:https://www.ikjzd.com/articles/141464
独立站最受欢迎的几种收款方式:https://www.ikjzd.com/articles/141465
高价产品一本万利?跨境小白千万别踩坑!:https://www.ikjzd.com/articles/141466
外贸企业如何避免或减少撞单:https://www.ikjzd.com/articles/141467
想不到,刚上任拜登就……?:https://www.ikjzd.com/articles/141468
杭州某大卖2020年净利润高达13亿,服装供应链SaaS服务商领猫SCM完成千万融资:https://www.ikjzd.com/articles/141469
跨境支付百科——巴西支付篇:https://www.kjdsnews.com/a/1836648.html
大福地快捷酒店预订 大福酒店怎么走:https://www.vstour.cn/a/365187.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流