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. 1118: 属于 static 类型 Object 的值的隐式强制指令的目标可能是非相关类型 Number。

    1.错误描述 此行的多个标记: -1118: 属于 static 类型 Object 的值的隐式强制指令的目标可能是非相关类型 Number. -left 2.错误原因 /** * 刷新按钮函数 */ ...

  2. 【原】Java学习笔记029 - 映射

    package cn.temptation; import java.util.HashMap; import java.util.Map; public class Sample01 { publi ...

  3. class-决策树Decision Tree

    顾名思义,决策树model是树形结构,在分类中,表示基于特征对实例进行分类的过程.可以认为是"if-else"的合集,也可以认为是特征空间,类空间上条件概率分布.主要优点是分类速度 ...

  4. C#图解教程 第二十五章 其他主题

    其他主题 概述字符串使用 StringBuilder类把字符串解析为数据值关于可空类型的更多内容 为可空类型赋值使用空接合运算符使用可空用户自定义类型 Main 方法文档注释 插入文档注释使用其他XM ...

  5. 你该怎么选Offer

    原文出处:http://www.360doc.com/content/15/1223/07/1209677_522436084.shtml 记录目的:自勉.分享 摘要 一段时间无数公司.无数投资人蜂拥 ...

  6. Postgresql与Oralce常用用法区别总结

    日期操作 1. 操作当前日期和时间 oracle Select SYSDATE FROM dual; PostgreSQL Select CURRENT_DATE; Select NOW();返回日期 ...

  7. Educational Codeforces Round 37

    Educational Codeforces Round 37 这场有点炸,题目比较水,但只做了3题QAQ.还是实力不够啊! 写下题解算了--(写的比较粗糙,细节或者bug可以私聊2333) A. W ...

  8. Bzoj4817:[SDOI2017]树点涂色

    题面 Bzoj Sol 做个转化 最开始都是虚边 操作\(1\)就是\(LCT\)里的\(Access\)操作 求的就是路径上虚边的个数+1 然后就好办了 用树链剖分+线段树来维护每个点到根虚边的个数 ...

  9. xctf的一道题目(77777)

    这次比赛我没有参加,这是结束之后才做的题目 题目链接http://47.97.168.223:23333 根据题目信息,我们要update那个points值,那就是有很大可能这道题目是一个sql注入的 ...

  10. java 流详解

    流在Java中是指计算中流动的缓冲区. 从外部设备流向中央处理器的数据流成为“输入流”,反之成为“输出流”. 字符流和字节流的主要区别: 1.字节流读取的时候,读到一个字节就返回一个字节:字符流使用了 ...