c# - 我们可以在这里删除重复的字符串元素吗?林克 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}, ..”数组
解决方案
我希望我做对了
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());
}
推荐阅读
- mysql - 选择具有不同条件的 2 列
- python - 在我使用方法移动对象后,有没有办法更新对象的原始 x 和 y 位置?
- spi - STM32F4上边界扫描内的SPI从机
- c# - 在纬度/经度折线上找到最近点的 C# 解决方案
- angular - 如何使用 CodedUI 自动化 Angular 或 reactjs 应用程序?
- reactjs - 使用 redux 操作写入 Firebase DB 会在 DB 中写入全新数据
- vhdl - 如何编写代码以跳过上升沿并继续计数,直到在 vhdl 中检测到第二个上升沿
- android - 如何使用 AsyncTask 下载大型视频文件?
- java - 将 DISTINCT 与 SQLiteDatabase 查询方法一起使用时如何不使用 LIMIT?
- odoo - 在 POS(销售点)会话中查看条形码字段