为了账号安全,请及时绑定邮箱和手机立即绑定

通过具有分组的特定属性从列表中删除另一个列表中的项目

通过具有分组的特定属性从列表中删除另一个列表中的项目

C#
慕的地8271018 2022-10-23 15:41:04
我有两个清单List A (CG300019159, CG300018158, FS300076458)List B Returns grouped lists like below     {            "pallet_identifier": "CG300018158",            "shipment_items": [                {                    "sku": "10366960",                    "stock_qty": 12,                    "description": "MOTHERCARE CREAM BABYGROW W/HAT"                },                {                    "sku": "10346788",                    "stock_qty": 1,                    "description": "KIT 7PC ESS CREW NECK CARDIGAN SKY BLUE"                }    ]    },    "pallet_identifier": "CG300018187",            "shipment_items": [                {                    "sku": "10366960",                    "stock_qty": 12,                    "description": "MOTHERCARE CREAM BABYGROW W/HAT"                },                {                    "sku": "10346788",                    "stock_qty": 1,                    "description": "KIT 7PC ESS CREW NECK CARDIGAN SKY BLUE"                }    ]    },我想使用属性pallet_identifier 从列表B 中删除托盘及其内容。尝试如下entity = new List<GoodInWarehouseBM>((from consighdrs in mi9db.consighdrs                        join consigdests in mi9db.consigdests on consighdrs.consignment equals consigdests                            .consignment                        join consigliness in mi9db.consiglines on consigdests.condestint equals consigliness                            .condestint                        join productcodess in mi9db.productcodes on consigliness.varint equals productcodess.varint                        join products in mi9db.products on productcodess.prodint equals products.prodint                        where consigdests.destination == storeId && consighdrs.status == "T" && consighdrs.warehouse == "900"                        group new { consigdests, productcodess, consigliness, products } by consigdests.consignment into grp                        select new GoodInWarehouseBM
查看完整描述

2 回答

?
子衿沉夜

TA贡献1828条经验 获得超3个赞

你可以尝试使用.Where(i=> getConsignmentbookedin.Any(z=> z != i.pallet_identifier))


entity = new List<GoodInWarehouseBM>((from consighdrs in mi9db.consighdrs

                        join consigdests in mi9db.consigdests on consighdrs.consignment equals consigdests

                            .consignment

                        join consigliness in mi9db.consiglines on consigdests.condestint equals consigliness

                            .condestint

                        join productcodess in mi9db.productcodes on consigliness.varint equals productcodess.varint

                        join products in mi9db.products on productcodess.prodint equals products.prodint

                        where consigdests.destination == storeId && consighdrs.status == "T" && consighdrs.warehouse == "900"

                        group new { consigdests, productcodess, consigliness, products } by consigdests.consignment into grp

                        select new GoodInWarehouseBM

                        {

                            pallet_identifier = grp.Key,

                            shipment_items = grp.Select(a => new GoodInWarehouseBM.ShipmentItems

                            {

                                sku = a.productcodess.variantcode,

                                stock_qty = a.consigliness.issueqty,

                                description = a.products.proddesc


                            }).ToList()


                        }).Where(i=> getConsignmentbookedin.Any(z=> z != i.pallet_identifier)).ToList();



查看完整回答
反对 回复 2022-10-23
?
慕慕森

TA贡献1856条经验 获得超17个赞

您应该在组和选择之前应用过滤器,因为您丢弃了不需要的所有内容,所以它会大大提高您的查询。


entity = new List<GoodInWarehouseBM>((from consighdrs in mi9db.consighdrs.Where(i=> !getConsignmentbookedin.Contains(i.Id(id of item not sure which one it is))

                        join consigdests in mi9db.consigdests on consighdrs.consignment equals consigdests

                            .consignment

                        join consigliness in mi9db.consiglines on consigdests.condestint equals consigliness

                            .condestint

                        join productcodess in mi9db.productcodes on consigliness.varint equals productcodess.varint

                        join products in mi9db.products on productcodess.prodint equals products.prodint

                        where consigdests.destination == storeId && consighdrs.status == "T" && consighdrs.warehouse == "900"

                        group new { consigdests, productcodess, consigliness, products } by consigdests.consignment into grp

                        select new GoodInWarehouseBM

                        {

                            pallet_identifier = grp.Key,

                            shipment_items = grp.Select(a => new GoodInWarehouseBM.ShipmentItems

                            {

                                sku = a.productcodess.variantcode,

                                stock_qty = a.consigliness.issueqty,

                                description = a.products.proddesc


                            }).ToList()


                        })).ToList();


查看完整回答
反对 回复 2022-10-23
  • 2 回答
  • 0 关注
  • 158 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号