linq分组求和_实体类和datatable
1、数据分组求合,分别用的实体类以及datatable来分组求合,还有分组求和之后的如何取值
//实体类版本
List<ProgramTimeModel> TotalAllList = GetData(); var a = from p in TotalAllList.AsEnumerable()
group p by p.ProgramTime_ID into g
select new ProgramTimeModel
{
ProgramTime_ID = g.Key,
Saled = g.Sum(p => p.Saled),
ComeIn = g.Sum(p => p.ComeIn)
}; //拿数据
if (a != null && a.ToList().Count > )
{
//方式1
List<ProgramTimeModel> TaList = new List<ProgramTimeModel>();
foreach (ProgramTimeModel item in a)
{
TaList.Add(item);
} //方式2
a.ToList().ForEach(p =>
{
TaList.Add(p);
}
);
} //DataTable版本
DataTable dtList = GetDataTable();
var b = from r in dtList.AsEnumerable()
group r by r.Field<long>("ProgramTime_ID") into g
select new
{
ProgramTime_ID = g.Key,
Saled = g.Sum(n => n.Field<int>("Saled")),
ComeIn = g.Sum(n => n.Field<int>("ComeIn"))
}; //拿数据1
if (b != null && b.ToList().Count > )
{
//方式1
DataTable dt = dtList.Clone();
foreach (var item in b)
{
DataRow dr = dt.NewRow();
dr["ProgramTime_ID"] = item.ProgramTime_ID;
dr["Saled"] = item.Saled;
dr["ComeIn"] = item.ComeIn;
dt.Rows.Add(dr);
} //方式2
b.ToList().ForEach(p =>
{
DataRow dr = dt.NewRow();
dr["ProgramTime_ID"] = p.ProgramTime_ID;
dr["Saled"] = p.Saled;
dr["ComeIn"] = p.ComeIn;
dt.Rows.Add(dr);
}
);
}
2、用到的datatable测试数据
public DataTable GetDataTable()
{
DataTable dt = new DataTable();
dt.Columns.Add("ProgramTime_ID", typeof(long));
dt.Columns.Add("ProgramTime_Name", typeof(string));
dt.Columns.Add("ProgramTime_Time", typeof(DateTime));
dt.Columns.Add("Saled", typeof(int));
dt.Columns.Add("SaleNoStart", typeof(int));
dt.Columns.Add("ComeIn", typeof(int)); DataRow dr = dt.NewRow();
dr["ProgramTime_ID"] = ;
dr["ProgramTime_Name"] = "场次二";
dr["ProgramTime_Time"] = Convert.ToDateTime("2016-08-12 12:20");
dr["Saled"] = ;
dr["SaleNoStart"] = ;
dr["ComeIn"] = ;
dt.Rows.Add(dr); dr = dt.NewRow();
dr["ProgramTime_ID"] = ;
dr["ProgramTime_Name"] = "场次三";
dr["ProgramTime_Time"] = Convert.ToDateTime("2016-08-13 12:20");
dr["Saled"] = ;
dr["SaleNoStart"] = ;
dr["ComeIn"] = ;
dt.Rows.Add(dr); dr = dt.NewRow();
dr["ProgramTime_ID"] = ;
dr["ProgramTime_Name"] = "场次四";
dr["ProgramTime_Time"] = Convert.ToDateTime("2016-08-14 12:20");
dr["Saled"] = ;
dr["SaleNoStart"] = ;
dr["ComeIn"] = ;
dt.Rows.Add(dr); dr = dt.NewRow();
dr["ProgramTime_ID"] = ;
dr["ProgramTime_Name"] = "场次四";
dr["ProgramTime_Time"] = Convert.ToDateTime("2016-08-14 12:20");
dr["Saled"] = ;
dr["SaleNoStart"] = ;
dr["ComeIn"] = ;
dt.Rows.Add(dr); return dt;
}
3、实体类的测试数据
public List<ProgramTimeModel> GetData()
{
List<ProgramTimeModel> list = new List<ProgramTimeModel>();
list.Add(new ProgramTimeModel() { ProgramTime_ID = , ProgramTime_Name = "场次一", ProgramTime_Time = Convert.ToDateTime("2016-08-09 12:20"), Saled = , SaleNoStart = , ComeIn = });
list.Add(new ProgramTimeModel() { ProgramTime_ID = , ProgramTime_Name = "场次二", ProgramTime_Time = Convert.ToDateTime("2016-08-12 12:20"), Saled = , SaleNoStart = , ComeIn = });
list.Add(new ProgramTimeModel() { ProgramTime_ID = , ProgramTime_Name = "场次三", ProgramTime_Time = Convert.ToDateTime("2016-08-20 12:20"), Saled = , SaleNoStart = , ComeIn = });
list.Add(new ProgramTimeModel() { ProgramTime_ID = , ProgramTime_Name = "场次三", ProgramTime_Time = Convert.ToDateTime("2016-08-20 12:20"), Saled = , SaleNoStart = , ComeIn = });
return list;
}
注:方式一或方式二只需要取一种
linq分组求和_实体类和datatable的更多相关文章
- 实体类和DataTable的转换
引子 最近在项目中在数据库查询的时间,总是要用到数据表到实体类对象列表的转化,自己封装了一个转换的方法,用起来还比较方便,记下来,以后可以重复使用,原理就主要是利用反射,当然有更好的ORM框架可以实现 ...
- LINQ to SQL 建立实体类
使用LINQ to SQL时,需要首先建立用于映射数据库对象的模型,也就是实体类.在运行时,LINQ to SQL 根据LINQ表达式或查询运算符生成SQL语句,发送到数据库进行操作.数据库返回后,L ...
- 步步学LINQ to SQL:为实体类添加关系【转】
[IT168 专稿]本文详细为你阐述了如何在你的应用程序中实现LINQ to SQL.附件的示例程序包括了这里探讨的所有代码,还提供了一个简单的WPF图形界面程序来显示通过数据绑定返回的结果集. 第一 ...
- LINQ to SQL 建立实体类 (转)
http://www.cnblogs.com/DebugLZQ/archive/2012/11/14/2770449.html 使用LINQ to SQL时,需要首先建立用于映射数据库对象的模型,也就 ...
- XML之序列化C#实体类,DataTable,List
1. static void Main(string[] args) { #region 实体类 Request patientIn = new Request(); patientIn.System ...
- 批量插入实体类转化DataTable
/// <summary> /// 根据实体类得到表结构 /// </summary> /// <param name="model">实体类& ...
- Hibernate_day02--课程安排_主键生成策略_对实体类crud操作_实体类对象状态
Hibernate_day02 上节内容 今天内容 实体类编写规则 Hibernate主键生成策略 实体类操作 对实体类crud操作 添加操作 根据id查询 修改操作 删除操作 实体类对象状态(概念) ...
- List实体类、DataTable与xml互转
序列化常用Attribute讲解说明 [XmlRootAttribute("MyCity", Namespace="abc.abc", IsNullable=f ...
- 回顾:Linq To SQL语法 - 实体类
第一篇博客,还望各位大神勿喷 小弟在此代码奉上........ 借用NorthWind数据库,实现一个商品展示的小功能.上代码: 添加对Linq的引用 using System.Data.Linq;/ ...
随机推荐
- SCRIPT5007:无法获取属性“show”的值,对象为null或未定义
1.错误描述 SCRIPT5007:无法获取属性"show"的值,对象为null或未定义 dojo.js,行15.字符11808 2.错误原因 requ ...
- python 字符串格式化输出 %d,%s及 format函数
旧式格式化方式:%s,%d 1.顺序填入格式化内容 s = "hello %s, hello %d"%("world", 100) print(s) 结果: ' ...
- ubuntu14.04安装cuda
1 装系统时候注意,另外14.04要好于12.04,自带了无线驱动 ubuntu14.04安装完不要update 2 安装cuda和cudnn http://blog.csdn.net/l297969 ...
- VMware下载安装及CentOS7下载安装
我是在Windows10系统下,下载的VMware Workstation 12 1.下载虚拟机软件 安装包位置(里面有激活码):https://pan.baidu.com/s/1i5hn5lj 2. ...
- sass学习笔记--摘录
//$a: Helvetica, sans-serif //$b: #333 // //body //font: 100% $a //color: $b //$a: red //body //colo ...
- linux下tomcat 8的安装以及tomcat启动慢问题
今天在 linux 下安装了 tomcat,中间也是一路波折,最终安装好了.感觉应该有不少伙伴跟我一样都会踩到这些坑,打算记录下来.使用的是通用(ubantu,debian, centos 均可)的安 ...
- 数组Array、数组API
1.数组:批量管理多个数据的存储空间. 数组的作用:现实中,批量管理多个数据都是集中分组存放,良好的数据结构,可极大提高程序的执行效率! 优点:方便查找 2.创建数组:(4种方式) (1)var 变量 ...
- JWT 在前后端分离中的应用与实践
关于前后端分离 前后端分离是一个很有趣的议题,它不仅仅是指前后端工程师之间的相互独立的合作分工方式,更是前后端之间开发模式与交互模式的模块化.解耦化.计算机世界的经验告诉我们,对于复杂的事物,模块化总 ...
- Nginx实现集群的负载均衡配置过程详解
Nginx 的负载均衡功能,其实实际上和 nginx 的代理是同一个功能,只是把代理一台机器改为多台机器而已. Nginx 的负载均衡和 lvs 相比,nginx属于更高级的应用层,不牵扯到 ip 和 ...
- Lintcode208 Assignment Operator Overloading (C++ Only) solution 题解
[题目描述] Implement an assignment operator overloading method. Make sure that: The new data can be copi ...