LINQ groupby和json输出

时间:2014-04-28 15:51:56

标签: c# linq

我的任务是对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实现这一目标吗?

1 个答案:

答案 0 :(得分:4)

试试这个:

subscriptions.GroupBy(item => item.SubscriptionCode)
.Select(group => new { Subscription = group.Key, Items = group.Select(item => new { StartDate = item.StartDate, EndDate = item.EndDate}) })

不确定它是否会起作用,但它会像它一样。

订阅只是您对象的列表。