【发布时间】:2020-04-21 13:26:57
【问题描述】:
抱歉这个不清楚的标题,但我不知道如何命名。只显示它会更容易:
对象示例:
class Order
{
public string OrderNumber{ get; set; }
public IEnumerable<ProductWithQuantity> ProductsWithQuantities{ get; set; }
}
class ProductWithQuantity
{
public string ProductName{ get; set; }
public int Quantity{ get; set; }
}
假设我有IEnumerable<Order>,每个订单都有产品清单和数量。订单总是有相同的产品列表,只是数量不同。现在都是按订单分组的,怎么反过来按产品分组。
为了更好地可视化它,我将在伪 json 上展示我想要实现的目标。
当前生成的 json:
[
{
OrderNumber,
ProductsWithQuantities [
{ProductName, Quantity}
]
}
]
我想实现这样的目标:
[
{
ProductName,
OrdersWithQuantities [
{OrderNumber, Quantity}
]
}
]
我尝试使用 select 和 group by 但我无法解决。
【问题讨论】:
-
对于旧情况,您已按
OrderNumber分组,现在您将按productName分组? -
正确。它类似于从 excel 中获取的数据,其中左侧有 ProductNames 列表,每一列都是顺序。在每一行(产品)和列(订单)的交叉处都有数量。从 excel 中获取的数据结构基于列,但现在我需要将其转换为基于行(初始结构无法更改)。
-
我已经提出了一个答案,请您检查一下
标签: linq .net-core data-transform