C# List实现行转列的通用方案实现行转列的通用方案
本篇通过行转列引出了System.Linq.Dynamic,并且介绍了过滤功能,具有很好的参考价值。下面跟着小编一起来看
下吧
最近在做报表统计方面的需求,涉及到行转列报表。根据以往经验使用SQL可以比较容易完成,这次决定挑战一下直接通过代码方
式完成行转列。期间遇到几个问题和用到的新知识这里整理记录一下。
阅读目录阅读目录
问题介绍问题介绍
动态动态Linq
System.Linq.Dynamic其它用法其它用法
总结总结
问题介绍问题介绍
以家庭月度费用为例,可以在[Name,Area,Month]三个维度上随意组合进行分组,三个维度中选择一个做为列显示。
/// <summary>
/// 家庭费用情况
/// </summary>
public class House
{
/// <summary>
/// 户主姓名
/// </summary>
public string Name { get; set; }
/// <summary>
/// 所属行政区域
/// </summary>
public string Area { get; set; }
/// <summary>
/// 月份
/// </summary>
public string Month { get; set; }
/// <summary>
/// 电费金额
/// </summary>
public double DfMoney { get; set; }
/// <summary>
/// 水费金额
/// </summary>
public double SfMoney { get; set; }
/// <summary>
/// 燃气金额
/// </summary>
public double RqfMoney { get; set; }
}
户主户主-月明细报表月明细报表
户主姓名户主姓名
2016-01 2016-02
电费电费 水费水费 燃气费燃气费 电费电费 水费水费 燃气费燃气费
张三 240.9 30 25 167 24.5 17.9
李四 56.7 24.7 13.2 65.2 18.9 14.9
区域区域-月明细报表月明细报表
户主姓名户主姓名
2016-01 2016-02
电费电费 水费水费 燃气费燃气费 电费电费 水费水费 燃气费燃气费
江夏区 2240.9 330 425 5167 264.5 177.9
洪山区 576.7 264.7 173.2 665.2 108.9 184.9
区域月份区域月份-户明细报表户明细报表
区域区域 月份月份
张三张三 李四李四
燃气费燃气费 电费电费 水费水费 燃气费燃气费 电费电费 水费水费
江夏区 2016-01 2240.9 330 425 5167 264.5 177.9
洪山区 2016-01 576.7 264.7 173.2 665.2 108.9 184.9
评论0