我的任务是对Subscription对象列表中的数据进行分组,该对象具有以下结构:
public class Subscription
{
public string ApplicationId { get; private set; }
public string UserCode { get; private set; }
public string SubscriptionId { get; private set; }
public string SubscriptionCode { get; private set; }
public DateTime? StartDate { get; private set; }
public DateTime? EndDate { get; private set; }
}
代码返回订阅列表,因此List。在我的例子中,我有几个具有相同ApplicationId但不同的StartDate和EndDate的项目。基本上我必须将这些项目分组 为了创建这样的json结构:
"applicationId" : {
"subscriptions" : [
{
"startdate" : ...,
"enddate" : ...,
},
{
"startdate" : ...,
"enddate" : ...,
},
]
}
我可以使用LINQ实现这一目标吗?
答案 0 :(得分:4)
试试这个:
subscriptions.GroupBy(item => item.SubscriptionCode)
.Select(group => new { Subscription = group.Key, Items = group.Select(item => new { StartDate = item.StartDate, EndDate = item.EndDate}) })
不确定它是否会起作用,但它会像它一样。
订阅只是您对象的列表。