首页 > 解决方案 > 我们可以在这里删除重复的字符串元素吗?林克 C#

问题描述

在此处输入图像描述

 static IEnumerable<MaxDiscountOwner> Task(IEnumerable<Supplier> supplierList,
            IEnumerable<SupplierDiscount> supplierDiscountList)
        {

            var b = supplierDiscountList.OrderBy(x => x.ShopName).ThenBy(a => a.Discount).
            Select(x => new MaxDiscountOwner
            {
                ShopName = x.ShopName,
                Discount = x.Discount,
                Owner = supplierList.Where(a => a.Id == x.SupplierId).FirstOrDefault()
            }).OrderByDescending(g => g.Discount);

            return b;
            
        }

我想删除by stringMaxDiscountOwner之后的重复元素,我该怎么做,我能做到吗?OrderByDescending(g => g.Discount)shop

supplierDiscountList是数组new SupplierDiscount { Discount = 5.0, ShopName = "shop1", SupplierId = 1 },相似的对象。

MaxDiscountOwner[] expected = new[]
new MaxDiscountOwner
                    {
                        Discount = 5.0, ShopName = "shop1",
                        Owner = new Supplier{Adress = "adress 1", Id = 1, YearOfBirth = 2000}
                    },
 new MaxDiscountOwner
                    {
                        Discount = 34.0, ShopName = "shop2",
                        Owner = new Supplier{Adress = "adress 2", Id = 2, YearOfBirth = 1961}
                    },
and until we run out of stores

供应商列出其“供应商{Adress = “adress 1”, Id = 1, YearOfBirth = 2000}, ..”数组

标签: c#linq

解决方案


我希望我做对了

 static IEnumerable<MaxDiscountOwner> Task(IEnumerable<Supplier> supplierList,
        IEnumerable<SupplierDiscount> supplierDiscountList)
    {

        return  supplierDiscountList.OrderBy(x => x.ShopName).ThenBy(a => a.Discount)
                                    .Select(x => new MaxDiscountOwner
                                    {
                                        ShopName = x.ShopName,
                                        Discount = x.Discount,
                                        Owner = supplierList.Where(a => a.Id == x.SupplierId).FirstOrDefault()
                                    })
                                    .OrderByDescending(g => g.Discount)
                                    .GroupBy(x => (x.ShopName ?? "").Trim()).OrderBy(x=>x.Key) // maybe add ToLower() yet
                                    .Select(x => x.OrderByDescending(g => g.Discount).First());           

        
    }

推荐阅读