【发布时间】:2016-06-07 06:04:33
【问题描述】:
类:
public class DataCls
{
public int Year { get; set; }
public string Month { get; set; }
public int MonthOrder { get; set; }
public string category { get; set; }
public int Val { get; set; }
}
数据:
List<DataCls> dlist = new List<DataCls>();
DataCls dat = new DataCls();
dat.Year = 2015;
dat.Month = "Jan";
dat.MonthOrder = 1;
dat.category = "A";
dat.Val = 1;
dlist.Add(dat);
dat = new DataCls();
dat.Year = 2015;
dat.Month = "Jan";
dat.MonthOrder = 1;
dat.category = "B";
dat.Val = 2;
dlist.Add(dat);
dat = new DataCls();
dat.Year = 2015;
dat.Month = "Jan";
dat.MonthOrder = 1;
dat.category = "C";
dat.Val = 3;
dlist.Add(dat);
dat = new DataCls();
dat.Year = 2015;
dat.Month = "Feb";
dat.MonthOrder = 2;
dat.category = "A";
dat.Val = 5;
dlist.Add(dat);
dat = new DataCls();
dat.Year = 2015;
dat.Month = "Feb";
dat.MonthOrder = 2;
dat.category = "B";
dat.Val = 6;
dlist.Add(dat);
dat.Year = 2016;
dat.Month = "Jan";
dat.MonthOrder = 1;
dat.category = "A";
dat.Val = 4;
dlist.Add(dat);
dat = new DataCls();
dat.Year = 2016;
dat.Month = "Feb";
dat.MonthOrder = 2;
dat.category = "A";
dat.Val = 7;
dlist.Add(dat);
dat = new DataCls();
dat.Year = 2016;
dat.Month = "Feb";
dat.MonthOrder = 2;
dat.category = "B";
dat.Val = 8;
dlist.Add(dat);
dat = new DataCls();
dat.Year = 2016;
dat.Month = "Feb";
dat.MonthOrder = 2;
dat.category = "C";
dat.Val = 9;
dlist.Add(dat);
dat = new DataCls();
dat.Year = 2015;
dat.Month = "Mar";
dat.MonthOrder = 3;
dat.category = "A";
dat.Val = 10;
dlist.Add(dat);
我期待的输出。
{
"Series": [{
"name": "A",
"stack": 2015,
"data": [1, 5, 10]
}, {
"name": "B",
"stack": 2015,
"data": [2, 6, null]
}, {
"name": "C",
"stack": 2015,
"data": [3, null, null]
}, {
"name": "A",
"stack": 2016,
"data": [4, 7, null]
}, {
"name": "B",
"stack": 2016,
"data": [null,8, null]
}, {
"name": "C",
"stack": 2016,
"data": [null,9, null]
}]
}
要记住的要点:
-
Year属性将分配给 json 对象中的stack属性。 -
Category属性将分配给 json 对象中的name属性。 -
Category的数量不固定。 - 给定的
Category在给定的月份可能存在也可能不存在。 -
val属性将分配给每个月的 json 对象中的data数组。 - 如果类别缺失一个月,我们需要将该值视为null。
我真的不知道如何解决这个问题。我该如何着手解决这个问题。我很难解决这个问题。
【问题讨论】:
-
必须是DataTable吗?你能用 IDataReader 代替吗?
-
@MattClark。是的,我也可以使用 DataReader。我最初以为我会在 DataTable 之上使用 LINQ 并且查询数据表会很容易
标签: c# .net linq c#-4.0 datatable