gpt4 book ai didi

C# linq groupby 包括 json

转载 作者:行者123 更新时间:2023-12-04 09:22:37 25 4
gpt4 key购买 nike

假设我有一个像这样的 OrderItems 列表:

public class OrderItem
{
public long Id { get; set; }
public long OrderNo { get; set; }
public string OrderEvent { get; set; }
public string OrderData { get; set; }
}
每个项目都被添加到 SQL 数据库中,因为 OrderEvent 与存储为 JSON 的 OrderData 一起出现。 OrderNo 是唯一标识符。目前正在向数据库中插入 3 行,我想根据 OrderNo 将其合并为一行,并将 OrderEvent 和 OrderData 保存在单个 JSON 字段中。
如何将所有项目汇总到一个项目中,其中 OrderData 包含一个 JSON 数组,每个项目的每个 OrderEvent 和 OrderData ?
因此,一旦汇总,每个 OrderData 将存储为 JSON,如下所示:
[
{
orderEvent: "Start",
orderData: {
orderLine1: "line1",
orderLine2: "line2",
}
},
{
orderEvent: "Collected",
orderData: {
orderCollectedLine1: "line1",
orderCollectedLine2: "line2",
}
},
{
orderEvent: "End",
orderData: {
orderEndLine1: "line1",
orderEndLine2: "line2",
}
}
]
我试过在 OrderNo 上使用 groupBy,但它只给了我所有的项目。不确定我是否应该使用 Select 。
var data = orders.GroupBy(x => x.OrderNo );

最佳答案

我不确定在这里我能猜对多少,但让我们试一试。
首先,让我们假设,我们可能有这样的输入:

var listOfOrders = new List<OrderItem>
{
new OrderItem
{
Id = 1,
OrderData = @"{
""orderLine1"": ""line1"",
""orderLine2"": ""line2"",
}",
OrderEvent = "Start",
OrderNo = 111
},
new OrderItem
{
Id = 1,
OrderData = @"{
""orderLine1"": ""line1"",
""orderLine2"": ""line2"",
}",
OrderEvent = "Start",
OrderNo = 111
},
new OrderItem
{
Id = 2,
OrderData = @"{
""orderLine1"": ""line1"",
""orderLine2"": ""line2"",
}",
OrderEvent = "Start",
OrderNo = 121
}
};
现在,我假设您可能希望按 OrderNo 对这些项目进行分组。并获取一组具有相似订单号的物品:
var collection = listOfOrders
.GroupBy(l => l.OrderNo)
.Select(group => new
{
Number = group.Key, // OrderNo
OrderEvent = group.Select(elm => new
{
OrderEvent = elm.OrderEvent,
OrderData = JObject.Parse(elm.OrderData) // assume we want to parse a
// JSON but this can be other logic
})
}).ToList();

关于C# linq groupby 包括 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63073505/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com