DataTable实现分组

有时候我们从数据库中查询出来数据之后,需要按照DataTable的某列进行分组,可以使用下面的方法实现,代码如下:

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace DataTableGroupDemo
{class Program{static void Main(string[] args){// 准备数据DataTable dt = new DataTable();// 创建列DataColumn dcName = new DataColumn("Name", typeof(string));DataColumn dcAge = new DataColumn("Age", typeof(Int32));DataColumn dcScore = new DataColumn("Score", typeof(Int32));// 添加列
            dt.Columns.Add(dcName);dt.Columns.Add(dcAge);dt.Columns.Add(dcScore);// 添加数据dt.Rows.Add(new object[] { "Tom", 23, 67 });dt.Rows.Add(new object[] { "Tom", 23, 67 });dt.Rows.Add(new object[] { "Jack", 21, 100 });dt.Rows.Add(new object[] { "Greey", 24, 56 });dt.Rows.Add(new object[] { "Kevin", 24, 77 });dt.Rows.Add(new object[] { "Tom", 23, 82 });dt.Rows.Add(new object[] { "Greey", 24, 80 });dt.Rows.Add(new object[] { "Jack", 21, 90 });#region 使用Linq expression to DataTable group byvar query = from p in dt.AsEnumerable()group p by new { name = p.Field<string>("Name"),score=p.Field<Int32>("Score") } into mselect new{Name = m.Key.name,Score=m.Key.score};#endregion// 输出Console.WriteLine("Linq");foreach (var item in query){Console.WriteLine(item);}Console.WriteLine("GroupBy");IEnumerable<IGrouping<string, DataRow>> result = dt.Rows.Cast<DataRow>().GroupBy<DataRow, string>(dr => dr["Name"].ToString());foreach (IGrouping<string, DataRow> ig in result){Console.WriteLine("key=" + ig.Key + "");foreach (DataRow dr in ig){                   Console.WriteLine(dr["Name"].ToString().PadRight(10) + dr["Age"].ToString().PadRight(10) + dr["Score"].ToString().PadRight(10));}}Console.ReadKey();}}
}

 

程序运行效果

 

转载于:https://www.cnblogs.com/dotnet261010/p/11495884.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/482402.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

城市大脑的定义与理论基础综述

本文发表于2022年2月下旬的《中国建设信息化》&#xff0c;作者杜青峰 刘锋 任伟阳1 前言2015以来&#xff0c;城市大脑的概念和定义首次提出后。随着城市大脑领域在理论研究和产业实践上的探索和进展,城市大脑已经成为前沿科技领域和智慧城市建设领域的新热点,到2022年&…

线程实现模型

线程实现模型 线程实现模型主要分为&#xff1a;用户级线程模型&#xff0c;内核级线程模型和两级线程模型。他们的区别在于线程与内核线程之间的对应关系。 以下我们将分析这三种线程实现模型的特点&#xff1a; 用户级线程模型 &#xff08;1&#xff09;多对一关系 用户级线…

逆生长!小鼠「逆龄疗法」登Nature子刊,有望用于人类

来源&#xff1a;机器学习研究组订阅一种新的「逆龄疗法」在小鼠身上显示出希望的曙光&#xff01;最近&#xff0c;美国索尔克生物研究所的科学家运用细胞再生疗法&#xff0c;将「山中因子」注入小鼠&#xff0c;通过多组实验证明&#xff1a;仅数个月&#xff0c;小鼠年轻多…

消息中间件那些事--RabbitMQ

消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能&#xff0c;成为异步RPC的主要手段之一。当今市面上有很多主流的消息中间件&#xff0c;如老牌的ActiveMQ、RabbitMQ&#xff0c;炙手可热的Kafka&#xf…

中国联通李福昌:探索无线连接的未来

来源&#xff1a;C114通信网文&#xff1a;李福昌无线技术在当今社会中发挥着重要的作用&#xff0c;特别是5G商用以来&#xff0c;无线技术的应用从以个人为主扩展到面向生产和社会&#xff0c;逐步践行“5G改变社会”的目标。展望未来&#xff0c;面向6G&#xff0c;无线连接…

听完411头猪的哼哼,他们找到了理解“猪语”的算法 | Scientific Reports

图片来源&#xff1a;Pixabay来源 哥本哈根大学翻译 闭诗林编辑 魏潇我们现在可以解读猪的情绪了。一个国际研究小组利用猪从出生到死亡的生命过程中收集到的数千份录音&#xff0c;首次在其一生各个阶段的大量场景下&#xff0c;将猪的呼噜声转化为了真实的情绪。这项研究由…

弄懂goroutine调度原理

goroutine简介 golang语言作者Rob Pike说&#xff0c;“Goroutine是一个与其他goroutines 并发运行在同一地址空间的Go函数或方法。一个运行的程序由一个或更多个goroutine组成。它与线程、协程、进程等不同。它是一个goroutine“。 goroutine通过通道来通信&#xff0c;而协程…

JVM-类加载原理

写在前面 我们知道我们编写的java代码&#xff0c;会经过编译器编译成字节码文件&#xff08;class文件&#xff09;&#xff0c;再把字节码文件装载到JVM中&#xff0c;映射到各个内存区域中&#xff0c;我们的程序就可以在内存中运行了。那么字节码文件是怎样装载到JVM中的呢…

2022年斯坦福AI Index公布:中美主导跨国研究,专利、投资金额暴增

来源&#xff1a;学术头条当地时间 3 月 16 日&#xff0c;斯坦福大学以人为本人工智能研究所&#xff08;StanfordHAI&#xff09;正式发布了《2022 年人工智能指数报告》&#xff08;Artificial Intelligence Index Report 2022&#xff09;。这是该机构发布的第五份年度报告…

中国传感器规模将超7000亿元:2022最全面深入的产业分析

来源&#xff1a;前瞻经济学人整理&#xff1a;动感传感本文整理自前瞻经济学人的传感器产业报告&#xff0c;作为国内领先的咨询机构&#xff0c;前瞻经济学人的研报分析深度和数据丰富程度&#xff0c;都首屈一指。主要有如下几部分内容&#xff1a;•2022年中国传感器行业市…

强化学习教父Richard Sutton新论文探索决策智能体的通用模型:寻找跨学科共性...

来源&#xff1a;人工智能AI技术 论文虽然有些难懂&#xff0c;但或许是一个新的研究方向。强化学习和决策多学科&#xff08;Multi-Disciplinary Conference on Reinforcement Learning and Decision Making, RLDM&#xff09;的重要前提是&#xff0c;随着时间的推移&#xf…

IO模型(epoll)--详解-01

写在前面 从事服务端开发&#xff0c;少不了要接触网络编程。epoll作为linux下高性能网络服务器的必备技术至关重要&#xff0c;nginx、redis、skynet和大部分游戏服务器都使用到这一多路复用技术。 本文会从网卡接收数据的流程讲起&#xff0c;串联起CPU中断、操作系统进程调度…

一文搞懂MEMS传感器产业链(最全解析!)

来源&#xff1a;传感器专家网本文涵盖了MEMS产业链的所有与流程与知识&#xff0c;力求用最简短的内容——全文不足8000字&#xff0c;让我们知道最全面的MEMS产业链情况&#xff0c;包括如下内容&#xff1a;一、MEMS简介二、MEMS分类三、MEMS 行业发展历程四、国内传感器企业…

IO模型(epoll)--详解-02

写在前面 从事服务端开发&#xff0c;少不了要接触网络编程。epoll作为linux下高性能网络服务器的必备技术至关重要&#xff0c;大部分游戏服务器都使用到这一多路复用技术。文章核心思想是&#xff1a;要让读者清晰明白EPOLL为什么性能好。 四、内核接收网络数据全过程 这一步…

MIT设计深度学习框架登Nature封面,预测非编码区DNA突变

来源&#xff1a;ScienceAI作者&#xff1a;Raleigh McElvery编辑&#xff1a;小舟、张倩来自 MIT 和哈佛大学博德研究所等机构的一项研究刚刚登上了 Nature 封面。他们创建了一个数学框架来预测基因组中非编码序列的突变及其对基因表达的影响。研究人员将能够利用这些模型来设…

IO模型(epoll)--详解-03

写在前面 epoll是开发linux高性能服务器的必备技术至&#xff0c;epoll本质&#xff0c;是服务端程序员的必须掌握的知识。 七、epoll的原理和流程 本节会以示例和图表来讲解epoll的原理和流程。 创建epoll对象 如下图所示&#xff0c;当某个进程调用epoll_create方法时&#x…

机器学习重新构想计算的构建块

来源&#xff1a;ScienceAI编辑&#xff1a;绿萝传统算法为机器学习等复杂的计算工具提供动力。一种称为「预测算法」的新方法利用机器学习的力量来改进算法。算法——允许程序对数据进行排序、过滤和组合等的代码块——是现代计算的标准工具。就像手表里的小齿轮一样&#xff…

js实现模糊查询

1、使用indexOf 2、使用match 3、使用test 4、使用stringObject.split(),字符串分割方法&#xff0c;如果字符串可以被分割说明含有这个字符串 <html><head><title>test</title></head><body><input type"text" id"btn&…

丘成桐谈几何:从黎曼、爱因斯坦到弦论

来源 &#xff1a; 超级数学建模著名数学家丘成桐先生发表了题为“几何&#xff1a;从黎曼、爱因斯坦到弦论”的演讲&#xff0c;追溯了为广义相对论发展奠定基础的的黎曼几何&#xff0c;回顾了影响广义相对论发展的物理学突破&#xff0c;并谈及量子力学和引力理论相结合、引…

图卷积网络的五年

来源&#xff1a;ScienceAI作者&#xff1a;Mostafa Haghir Chehreghani编辑&#xff1a;萝卜皮图卷积网络&#xff08;Graph Convolutional Networks&#xff0c;GCN&#xff09;已成为使用图和网络进行学习的流行工具。我们应该反思一下成功故事背后的原因。论文链接&#xf…