当前位置:  编程技术>.net/c#/asp.net

c#中合并DataTable重复行的值

    来源: 互联网  发布时间:2014-10-20

    本文导语:  代码如下:            //DataTable数据添加            Hashtable ht = new Hashtable();            DataTable dt = new DataTable();            DataColumn dc = new DataColumn("id");            dt.Columns.Add(dc);            dc = ...

代码如下:

            //DataTable数据添加
            Hashtable ht = new Hashtable();
            DataTable dt = new DataTable();
            DataColumn dc = new DataColumn("id");
            dt.Columns.Add(dc);
            dc = new DataColumn("name");
            dt.Columns.Add(dc);
            dc = new DataColumn("values");
            dt.Columns.Add(dc);
            DataRow dr = dt.NewRow();
            dr["id"] = 1;
            dr["name"] = "张三";
            dr["values"] = "A";
            dt.Rows.Add(dr);
            dr = dt.NewRow();
            dr["id"] = 2;
            dr["name"] = "李四";
            dr["values"] = "B";
            dt.Rows.Add(dr);
            dr = dt.NewRow();
            dr["id"] = 3;
            dr["name"] = "张三";
            dr["values"] = "C";
            dt.Rows.Add(dr);
            dataGridView1.DataSource = dt;

            //合并
            for (int i = 0; i < dt.Rows.Count; i++ )
            {
                if (ht.ContainsKey(dt.Rows[i]["name"]))
                {
                    //获取行索引
                    int index = (int)ht[dt.Rows[i]["name"]];
                    //获取最近一次的值(对应values)
                    string str = (string)dt.Rows[index]["values"];
                    //拼接
                    dt.Rows[index]["values"] = str + "|" + dt.Rows[i]["values"];
                    //删除重复行
                    dt.Rows.RemoveAt(i);
                    //调整索引减1
                    i--;
                }
                else
                {
                    //保存名称以及行索引
                    ht.Add(dt.Rows[i]["name"], i);
                }

}


    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++ Lists(链表) 成员 merge():合并两个list
  • JS和CSS合并压缩工具 SpeedJSCSS
  • C++ Lists(链表) 成员 splice():合并两个list
  • 我想按照文件名合并一些文件内容,如何操作
  • 自动合并压缩JS文件 Merpressor
  • 如何合并Solaris10
  • linux下 二进制文件如何合并
  • jquery实现json对象合并
  • 关于相关linux/unix版块合并的最后意见收集
  • 如何把多个小文本文件合并成为一个大的文件?
  • Oracle 合并查询
  • CSS-JS合并/压缩 Munee
  • 自动合并/压缩脚本 combo
  • 合并一个文件夹下多个文件内容的单行shell命令
  • 求救:关于表格中单元格合并拆分的问题!
  • 合并参数
  • 求救:关于表格中单元格合并拆分的问题!
  • 在linux下怎样合并两个文件?
  • svn 怎么合并分支?
  • PDF文档切割和合并工具 pdfsam
  • 使用QT合并图片的问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3