【发布时间】:2017-07-26 18:38:31
【问题描述】:
这里是问题的简要说明。 从服务器我得到 json 数组,它看起来类似于:
[
{
"messagenumber": "0529069f-a403-4eea-a955-430a10995745",
"message": "A",
"partnumber": 1,
"total": 3
},
{
"messagenumber": "0529069f-a403-4eea-a955-430a10995745",
"message": "B",
"partnumber": 2,
"total": 3
},
{
"messagenumber": "0529069f-a403-4eea-a955-430a10995745",
"message": "C",
"partnumber": 3,
"total": 3
},
{
"messagenumber": "52e7d68d-462b-46b9-8eec-f289bcdf7b06",
"message": "AA",
"partnumber": 1,
"total": 2
}......
]
它表示消息部分的列表。属于同一组的消息部分被赋予相同的messagenumber,partnumber代表订单号。最后,在客户端上,我必须组合属于同一组的所有消息部分并呈现完整消息。从上面的示例中,单个消息的结果将如下所示:
var msg = new FullMessage();
msg.MessageNumber = "0529069f-a403-4eea-a955-430a10995745";
msg.Message = "ABC"; //here we have full message created out of 3 parts
msg.PartNumber = 1; //not important
msg.Total = 1 //also not important
最终结果应该是一个 FullMessage 对象的集合。 此外,应该忽略部分消息(并非所有部分都存在)。
这可以使用 LINQ 语句优雅地完成吗?
感谢您的任何建议。
【问题讨论】:
-
你可以使用
Aggregate() -
是的,他可以通过 Linq 轻松完成