C# List去重的三种方法

学习来源:https://www.cnblogs.com/DONET-LC/articles/ListDistinct.html

最近再写一个EF语句:一个商品对应两个型号,两个型号不同规格和价格,查询条件有:标签,价格,风格

 List CommodityList = (from ShopInfoCommodityRelation in db.e_ShopInfoCommodityRelation
                                        join Commodity in db.e_Commodity on ShopInfoCommodityRelation.CommodityId equals Commodity.CommodityId
                                        join Property in db.e_Property on Commodity.CommodityId equals Property.CommodityID
                                        where ShopInfoCommodityRelation.IsAction.Equals(1)
                                        && Commodity.IsDelete.Equals(0)
                                        && ShopInfoCommodityRelation.ShopInfoId.Equals(gid)
                                        && (Commodity.StyleModelId == model.StyleModel || model.StyleModel == -2)//风格
                                        && (db.e_LableComTypeRelation.Where(a => a.LableID == model.LableId).Select(a => a.CommodityType).Any(a => a == Commodity.CommodityTypeItemId))//标签
                                        && (Property.RetailPrice > model.MinPrice && Property.RetailPrice <= model.MaxPrice)
                                        select new DataRe
                                        {
                                            RId=ShopInfoCommodityRelation.RId,
                                            VersionCode= ShopInfoCommodityRelation.VersionCode,
                                            CommodityId= Commodity.CommodityId,
                                            CommodityName= Commodity.CommodityName,
                                            CommodityContext= Commodity.CommodityContext,
                                            CommodityTypeId= Commodity.CommodityTypeId,
                                            CommodityTypeItemId=Commodity.CommodityTypeItemId,
                                            CommodityFrom=Commodity.CommodityFrom,
                                            Material=Commodity.Material,
                                            CommodityBrand=Commodity.CommodityBrand,
                                            StyleModelId=Commodity.StyleModelId,
                                            Index=Commodity.Index,
                                            PropertyList = db.e_Property.Where(a => a.CommodityID.Equals(Commodity.CommodityId)).OrderBy(a => a.CommodityModel).ToList()
                                        }).ToList();
                   
                    List list = CommodityList.Where((x, i) => CommodityList.FindIndex(z => z.CommodityId == x.CommodityId) == i).ToList();//去重

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(.NET(C#))