DataTable dt = new DataTable();
dt.Columns.Add("CustomerID");
dt.Columns.Add("aa");
dt.Columns.Add("vv");
dt.Columns["CustomerID"].DataType = typeof(string);
dt.Columns["aa"].DataType = typeof(Int32);
dt.Columns["vv"].DataType = typeof(Int32);
DataRow row = dt.NewRow();
row["CustomerID"] = "222";
row["aa"] = 1;
row["vv"] = 2;
dt.Rows.Add(row);
DataRow row1 = dt.NewRow();
row1["CustomerID"] = "222";
row1["aa"] = 1;
row1["vv"] = 2;
dt.Rows.Add(row1);
DataRow row11 = dt.NewRow();
row11["CustomerID"] = "3";
row11["aa"] = 1;
row11["vv"] = 2;
dt.Rows.Add(row11);
DataRow row12 = dt.NewRow();
row12["CustomerID"] = "3";
row12["aa"] = 1;
row12["vv"] = 2;

dt.Rows.Add(row12);
var query = from t in dt.AsEnumerable().ToList()
group t by new { t1 = t.Field<string>("CustomerID") } into m
select new
{
name = m.Key.t1,
score = m.Sum(n => n.Field<Int32>("aa")),
ss = m.Sum(n => n.Field<Int32>("vv"))
};

DataTable dt22= ToDataTable(query.Where(p=>1==1));

public static DataTable ToDataTable<T>(IEnumerable<T> collection)
{
var props = typeof(T).GetProperties();
var dt = new DataTable();
dt.Columns.AddRange(props.Select(p => new DataColumn(p.Name, p.PropertyType)).ToArray());
if (collection.Count() > 0)
{
for (int i = 0; i < collection.Count(); i++)
{
ArrayList tempList = new ArrayList();
foreach (PropertyInfo pi in props)
{
object obj = pi.GetValue(collection.ElementAt(i), null);
tempList.Add(obj);
}
object[] array = tempList.ToArray();
dt.LoadDataRow(array, true);
}
}
return dt;
}

linq 将datatable分组求和在转datatable的更多相关文章

  1. 【其他-小技巧-Uipath】VB语法操作DataTable分组并求和

    需要对DataTable分组求和的语法:VB.net 和C#中还有点不太一样.最后试了好多方法,要这么写 我的dataTabel数据: (From p In dataTabel.AsEnumerabl ...

  2. linq分组求和_实体类和datatable

    1.数据分组求合,分别用的实体类以及datatable来分组求合,还有分组求和之后的如何取值 //实体类版本 List<ProgramTimeModel> TotalAllList = G ...

  3. 每日学习心得:CustomValidator验证控件验证用户输入的字符长度、Linq 多字段分组统计、ASP.NET后台弹出confirm对话框,然后点击确定,执行一段代码

    2013-9-15 1.    CustomValidator验证控件验证用户输入的字符长度 在实际的开发中通常会遇到验证用户输入的字符长度的问题,通常的情况下,可以写一个js的脚本或者函数,在ASP ...

  4. Oracle函数over(),rank()over()作用及用法--分区(分组)求和& 不连续/连续排名

    (1)   函数:  over()的作用及用法:    -- 分区(分组)求和. RANK ( ) OVER ( [query_partition_clause] order_by_clause )D ...

  5. Oracle分析函数及常用函数: over(),rank()over()作用及用法--分区(分组)求和& 不连续/连续排名

    (1)   函数:  over()的作用及用法:    -- 分区(分组)求和. sum() over( partition by column1 order by column2 )主要用来对某个字 ...

  6. c# datarow[] 转换成 datatable, List<T> 转datatable

      c# datarow[] 转换成 datatable, List<T> 转datatable DdataRow[]转成Datatable private DataTable ToDat ...

  7. DataTable转Json,Json转DataTable

    // 页面加载时 /// </summary> /// <param name="sender"></param> /// <param ...

  8. Mysql分组求和&LIMIT

    分组求和mysql> SELECT coalesce(name, '总数'), SUM(singin) as singin_count FROM employee_tbl GROUP BY na ...

  9. JDK8:Lambda根据 单个字段、多个字段,分组求和

    使用lambda表达式分别 根据 单个字段.多个字段,分组求和 示意图: 1.根据 单个字段,分组求和:根据2019这个字段,计算一个list集合里,同属于2019的某个字段累加和 2.根据 多个字段 ...

随机推荐

  1. php正则替换函数-----preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )

    preg_replace — 执行一个正则表达式的搜索和替换 说明 mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $ ...

  2. 40)django-常用过滤器

    一.形式:小写 {{ name | lower }} 二.过滤器是可以嵌套的,字符串经过三个过滤器,第一个过滤器转换为小写,第二个过滤器输出首字母,第三个过滤器将首字母转换成大写 标签 {{ str| ...

  3. python基础--压缩文件

    1)怎么压缩备份多个文件 使用zipfile 创建压缩文件 查看信息 解压缩 # 创建 import zipfile # os.chdir('test') my_zip = zipfile.ZipFi ...

  4. iOS -- Effective Objective-C 阅读笔记 (1)

    1: 在类的头文件中尽量 少 的引用其他头文件,尽量用 @class xxxxxx; 理解: 当你创建了一个 A 类,这个类又 需要具有 B 类的实例, 你可以直接为 A 类添加 B 类类型的 属性, ...

  5. Modbus库开发笔记:Modbus ASCII Slave开发

    与Modbus RTU在串行链路上分为Slave和Master一样,Modbus ASCII也分为Slave和Master,这一节我们就来开发Slave.对于Modbus ASCII从站来说,需要实现 ...

  6. 在 Confluence 6 中禁用 workbox 应用通知

    如果你选择 不提供应用通知(does not provide in-app notifications): Confluence workbox 图标将不会可见同时用户也不能在这个服务器上访问 wor ...

  7. SpringBoot事务管理

    1.在UserMapper接口中添加更新和删除方法 package com.cppdy.mapper; import org.apache.ibatis.annotations.Delete; imp ...

  8. kindedit编辑器和xxs攻击防护(BeautifulSoup)的简单使用

    一.kindedit编辑器 就是上面这样的编辑输入文本的一个编辑器 这也是一个插件.那么怎么用呢? 1.下载:百度kindedit 2.引入: <script src="/static ...

  9. Max Sum (dp)

    Given a sequence a[1],a[2],a[3]......a[n], your job is to calculate the max sum of a sub-sequence. F ...

  10. Web前端渗透测试技术小结(一)

    首先端正一下态度不可干违法的事 1.SQL注入测试 对于存在SQL注入的网页,使用SQL语句进行关联查询(仿照C/S模式)eg   http://www.foo.com/user.php?id=1 常 ...