如果我有这样的数据表:
CompanyId Year Total1 Total2 Total3
3022 2016 36.7 98.1 10.4
3022 2015 77.3 55.3 98.4
3011 2016 73.1 13.3 11.6
3011 2015 33.6 10.9 8.1
如何获得以下结果:垂直分组数据如下:
Total1 Total2 Total3
2016 2015 2016 2015 2016 2015
3022 36.7 77.3 98.1 55.3 10.4 98.4
3011 73.1 33.6 13.3 10.9 11.6 8.1
答案 0 :(得分:1)
这将使用您请求的格式创建一组匿名类型。根据您的意图,我建议您创建特定的课程
Total1 = c.Select(t1 => new { Year = t1["Year"], Total1 = t1["Total1"]
代码说明:
首先,我按CompanyId对DataTable行进行分组,这将产生2组,每组2行。
对于每个组,我定义一个匿名项目(c)并给它两个属性:公司,我将存储CompanyId和总计,我现在将解析。
总计也被定义为匿名类,其中包含三个属性 Total1 , Total2 和 Total3 。
这些中的每一个都是作为匿名类实现的,其中包含属性年,以及' Total' 十进制值。
由于在这个例子中每个公司拥有两个不同年份的数据,我们将有2个记录,每个&Total;#Total;因此:
{{1}}
将返回两个Total1值,为了对它们进行分类和区分,我将它们与year属性一起存储在匿名类型中。