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的更多相关文章

  1. 实体类和DataTable的转换

    引子 最近在项目中在数据库查询的时间,总是要用到数据表到实体类对象列表的转化,自己封装了一个转换的方法,用起来还比较方便,记下来,以后可以重复使用,原理就主要是利用反射,当然有更好的ORM框架可以实现 ...

  2. LINQ to SQL 建立实体类

    使用LINQ to SQL时,需要首先建立用于映射数据库对象的模型,也就是实体类.在运行时,LINQ to SQL 根据LINQ表达式或查询运算符生成SQL语句,发送到数据库进行操作.数据库返回后,L ...

  3. 步步学LINQ to SQL:为实体类添加关系【转】

    [IT168 专稿]本文详细为你阐述了如何在你的应用程序中实现LINQ to SQL.附件的示例程序包括了这里探讨的所有代码,还提供了一个简单的WPF图形界面程序来显示通过数据绑定返回的结果集. 第一 ...

  4. LINQ to SQL 建立实体类 (转)

    http://www.cnblogs.com/DebugLZQ/archive/2012/11/14/2770449.html 使用LINQ to SQL时,需要首先建立用于映射数据库对象的模型,也就 ...

  5. XML之序列化C#实体类,DataTable,List

    1. static void Main(string[] args) { #region 实体类 Request patientIn = new Request(); patientIn.System ...

  6. 批量插入实体类转化DataTable

    /// <summary> /// 根据实体类得到表结构 /// </summary> /// <param name="model">实体类& ...

  7. Hibernate_day02--课程安排_主键生成策略_对实体类crud操作_实体类对象状态

    Hibernate_day02 上节内容 今天内容 实体类编写规则 Hibernate主键生成策略 实体类操作 对实体类crud操作 添加操作 根据id查询 修改操作 删除操作 实体类对象状态(概念) ...

  8. List实体类、DataTable与xml互转

    序列化常用Attribute讲解说明 [XmlRootAttribute("MyCity", Namespace="abc.abc", IsNullable=f ...

  9. 回顾:Linq To SQL语法 - 实体类

    第一篇博客,还望各位大神勿喷 小弟在此代码奉上........ 借用NorthWind数据库,实现一个商品展示的小功能.上代码: 添加对Linq的引用 using System.Data.Linq;/ ...

随机推荐

  1. 用DataRelation给多个DataTable建立关系并显示到TreeView

    DataRelation 对象执行两种功能: 它可使与正使用的记录相关的记录可用.如果在父记录 (GetChildRows) 中,则它提供子记录:如果正使用子记录 (GetParentRow),则它提 ...

  2. 最小生成树 TOJ 4117 Happy tree friends

    链接http://acm.tju.edu.cn/toj/showp4117.html 4117.   Happy tree friends Time Limit: 1.0 Seconds   Memo ...

  3. Maven 搭建 SSM 项目 (oracle)

    简单谈一下maven搭建 ssm 项目 (使用数据库oracle,比 mysql 难,所以这里谈一下) 在创建maven 的web项目时,常常会缺了main/java , main/test 两个文件 ...

  4. [HAOI2010]软件安装

    简单的tarjan+(本蒟蒻刚刚接触不久)恶心的树形DP 题面 题目描述 现在我们的手头有N个软件,对于一个软件i,它要占用Wi的磁盘空间,它的价值为Vi.我们希望从中选择一些软件安装到一台磁盘容量为 ...

  5. [APIO2009]抢掠计划

    题面: Description Siruseri城中的道路都是单向的.不同的道路由路口连接.按照法律的规定,在每个路口都设立了一个Siruseri银行的ATM取款机.令人奇怪的是,Siruseri的酒 ...

  6. ajax 状态码

    状态码定义 ... 10 信息1xx ... 10.1 100继续 ... 10.1.1 101交换协议 ... 10.1.2 成功的2xx ... 10.2 200 OK ... 10.2.1 20 ...

  7. 【learning】[待完善]关于辛普森公式的一点想法

    [吐槽] 嗯一开始接触到这个东西其实是因为某道凸包的题目好像可以用这个奇妙的方法来算 但其实了解也不是很深,只是觉得这个东西十分有意思, 所以先稍微写一下自己的想法,了解更多之后慢慢完善 [正题] 首 ...

  8. CSS中的各种FC

    什么是FC? Formatting Context,格式化上下文,指页面中一个渲染区域,拥有一套渲染规则,它决定了其子元素如何定位,以及与其他元素的相互关系和作用. BFC 什么是BFC Block ...

  9. Android Foreground Service (前台服务)

    一.如何保活后台服务 在Android Services (后台服务) 里面,我们了解了Android四大组件之一的Service,知道如何使用后台服务进行来完成一些特定的任务.但是后台服务在系统内存 ...

  10. 【python学习笔记】8.异常

    [python学习笔记]8.异常 raise Exception: 抛出指定异常 try/except: 捕捉异常 except: 第一个参数是需要捕获的异常类型,可以是多个类型组成元组,第二个参数是 ...