#region table去重复求和
var query = dt.Rows.Cast<DataRow>()
.OrderByDescending(n => n["OPERATION_TIME"])
.GroupBy(
s => new
{
MATERIAL_CODE = Convert.ToString(s["MATERIAL_CODE"]),
MATERIAL_NAME = Convert.ToString(s["MATERIAL_NAME"]),
STORAGE_STYLE = Convert.ToString(s["STORAGE_STYLE"]),
STORAGE_SIGN = Convert.ToString(s["STORAGE_SIGN"])
})
.Select(group => new
{
group.Key.MATERIAL_CODE,
group.Key.MATERIAL_NAME,
group.Key.STORAGE_STYLE,
group.Key.STORAGE_SIGN,
REMARK = group.First().Field<string>("REMARK"),
OPERATION_TIME = group.First().Field<string>("OPERATION_TIME"),
STORAGE_NUM = group.Sum(x => Convert.ToInt32(x["STORAGE_NUM"]))
}); if (query.ToList().Count > )
{
dtNew = dt.Clone();
query.ToList().ForEach(q =>
{
DataRow drNew = dtNew.NewRow();
drNew["MATERIAL_CODE"] = q.MATERIAL_CODE;
drNew["MATERIAL_NAME"] = q.MATERIAL_NAME;
drNew["REMARK"] = q.REMARK;
drNew["STORAGE_NUM"] = q.STORAGE_NUM;
drNew["STORAGE_STYLE"] = q.STORAGE_STYLE;
drNew["OPERATION_TIME"] = q.OPERATION_TIME;
drNew["STORAGE_SIGN"] = q.STORAGE_SIGN;
dtNew.Rows.Add(drNew);
});
}
#endregion

关于dt分组、计数、排序的实例的更多相关文章

  1. 八大排序方法汇总(选择排序,插入排序-简单插入排序、shell排序,交换排序-冒泡排序、快速排序、堆排序,归并排序,计数排序)

    2013-08-22 14:55:33 八大排序方法汇总(选择排序-简单选择排序.堆排序,插入排序-简单插入排序.shell排序,交换排序-冒泡排序.快速排序,归并排序,计数排序). 插入排序还可以和 ...

  2. Linq入门演练---(1)基本用法-分组,排序,内连接

    这一节大家共同学习下LINQ的基本用法,主要包括LINQ的分组,排序,和内外连接. 1.分组 基本语法:  group element by key element 表示查询结果返回的元素,key表示 ...

  3. JavaScript 数据结构与算法之美 - 桶排序、计数排序、基数排序

    1. 前言 算法为王. 想学好前端,先练好内功,只有内功深厚者,前端之路才会走得更远. 笔者写的 JavaScript 数据结构与算法之美 系列用的语言是 JavaScript ,旨在入门数据结构与算 ...

  4. MySQL在按照某个字段分组、排序加序号

    事情是这样的,最近领导给了一个新的需求,要求在一张订单表中统计每个人第一次和第二次购买的时间间隔,最后还需要按照间隔统计计数,求出中位数等数据. 由于MySQL不想Oracle那般支持行号.中位数等, ...

  5. 计数排序(counting-sort)——算法导论(9)

    1. 比较排序算法的下界 (1) 比较排序     到目前为止,我们已经介绍了几种能在O(nlgn)时间内排序n个数的算法:归并排序和堆排序达到了最坏情况下的上界:快速排序在平均情况下达到该上界.   ...

  6. 计数排序和桶排序(Java实现)

    目录 比较和非比较的区别 计数排序 计数排序适用数据范围 过程分析 桶排序 网络流传桶排序算法勘误 桶排序适用数据范围 过程分析 比较和非比较的区别 常见的快速排序.归并排序.堆排序.冒泡排序等属于比 ...

  7. CF 375B Maximum Submatrix 2[预处理 计数排序]

    B. Maximum Submatrix 2 time limit per test 2 seconds memory limit per test 512 megabytes input stand ...

  8. 计数排序-java

    今天看了一本书,书里有道题,题目很常见,排序,明了点说: 需求:输入:最多有n个正整数,每个数都小于n, n为107 ,没有重复的整数 输出:按升序排列 思路:假设有一组集合 {1,3,5,6,11, ...

  9. 计数排序 + 线段树优化 --- Codeforces 558E : A Simple Task

    E. A Simple Task Problem's Link: http://codeforces.com/problemset/problem/558/E Mean: 给定一个字符串,有q次操作, ...

  10. 计数排序算法——时间复杂度O(n+k)

    计数排序 计数排序是一个非基于比较的排序算法,该算法于1954年由 Harold H. Seward 提出.它的优势在于在对一定范围内的整数排序时,它的复杂度为Ο(n+k)(其中k是整数的范围),快于 ...

随机推荐

  1. Java 基础篇之异常

    异常 异常层次 Error:Java 运行时系统的内部错误和资源耗尽错误.应用程序不应该抛出这种类型的对象.如果出现了这样的内部错误,除了通告给用户,并尽力使程序安全地终止之外,再也无能为力了. Ex ...

  2. Idea 设置Eclipse快捷键(常用)

    使用Idea不习惯,特此将其配置成Eclipse风格的. 1.选择Eclipse风格,选择copy一份,可以自己重命名. 2.设置生成快捷键的快捷键(例如:Eclipse中的Alt+/) 3.设置ma ...

  3. CentOS7 搭建php环境

    1,先安装apache: yum install httpd 配置ServerName,进入httpd.conf文件: vi /etc/httpd/conf/httpd.conf 将#ServerNa ...

  4. 在网页中动态地给表格添加一行内容--HTML+CSS+JavaScript

    需求描述: 用户在页面上点击按钮,可以把文本框中的数据在表格的新的一行中显示,具体表现如下图: 如果如果输入框内容有一项为空,弹出对话框‘请将数据填入完全 步骤: 1.按钮注册单击事件 2.获取并判断 ...

  5. 设计时数据源: 在ActiveReports中直接连接PostgreSql 数据库

    在之前的博客中,我们学习了如何在运行时绑定PostgreSql 数据库,今天我们学习,如何直连PostgreSQL 数据库. 1. 安装PostgreSQL 的ODBC驱动程序 https://www ...

  6. 基于.Net core3.0 开发的斗图小程序后端+斗图小程序

    为啥要写这么一个小程序? 作为互联网的原住民. 90后程序员的我,从高中开始发QQ小表情. 到之后的熊猫头,蘑菇头. 可以说表情包陪伴我从学校到社会,从青少年到中年.. 而且因为斗图厉害,还找到一个女 ...

  7. python编程基础之四

    注释: 单行注释 #    例: # age = 10 多行注释  三引号“”“  ”“”,‘‘‘ ’’’ 例:“““  age = 10   ””” 只要注释较难的代码, 注释比例大概占总数的30% ...

  8. C# 创建自定义配置节点1

    转载:http://www.educity.cn/develop/495003.html 在.Net应用程序中我们经常看到VS为我们生成的项目工程中都会含有app.config或者web.connfi ...

  9. MySQL 拿 WebShell

    两种常规方法利用 MySQL getshell 的方法: select … into outfile general_log 一.select … into outfile 介绍 利用需要满足以下条件 ...

  10. PHP key_exists

    此函数同array_key_exsits(). 1.函数的作用:判断一个数组是否含有某个键值 2.函数的参数: @param string  $key @param array $haystack 3 ...