博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
对dataTable去重
阅读量:5035 次
发布时间:2019-06-12

本文共 2853 字,大约阅读时间需要 9 分钟。

using System;using System.Collections.Generic;using System.Data;using System.Linq;using System.Text;using System.Threading.Tasks;namespace RemoveDupRowDemoTest{    class Program    {        static void Main(string[] args)        {            DataTable _dt = new DataTable();            _dt.Columns.Add("id", typeof(int));            _dt.Columns.Add("name", typeof(string));            _dt.Columns.Add("address", typeof(string));            DataRow _dr = _dt.NewRow();            _dr["id"] = 1;            _dr["name"] = "lipeng";            _dr["address"] = "DongXiaoKou";            _dt.Rows.Add(_dr);            _dt.Rows.Add(_dr.ItemArray);            _dt.Rows.Add(_dr.ItemArray);            _dr = _dt.NewRow();            _dr["id"] = 2;            _dr["name"] = "xiaoNa";            _dr["address"] = "DongXiaoKou";            _dt.Rows.Add(_dr);            _dr = _dt.NewRow();            _dr["id"] = 3;            _dr["name"] = "BingLi";            _dr["address"] = "TianTongYuan";            _dt.Rows.Add(_dr);            _dt.Rows.Add(_dr.ItemArray);            Console.WriteLine("--------------------原来有重复数据的Table----------------------");            _dt.AsEnumerable().ToList().ForEach(                x =>                {                    Console.WriteLine(x["id"].ToString() + "  " + x["name"].ToString() + "   " + x["address"].ToString());                });            Console.WriteLine();            Console.WriteLine("--------------------用Linq去重复后的Table----------------------");            var _comPresult = _dt.AsEnumerable().Distinct(new DataTableRowCompare());            DataTable _resultDt = _comPresult.CopyToDataTable();            _resultDt.AsEnumerable().ToList().ForEach(               x =>               {                   Console.WriteLine(x["id"].ToString() + "    " + x["name"].ToString() + "   " + x["address"].ToString());               });            Console.WriteLine();            Console.WriteLine("--------------------用DefaultView去重复后的Table----------------------");            DataTable _dtDefalut = _dt.DefaultView.ToTable(true, "id", "name", "address");            _dtDefalut.AsEnumerable().ToList().ForEach(              x =>              {                  Console.WriteLine(x["id"].ToString() + "    " + x["name"].ToString() + "   " + x["address"].ToString());              });            Console.ReadLine();        }    }    public class DataTableRowCompare : IEqualityComparer
{ #region IEqualityComparer
成员 public bool Equals(DataRow x, DataRow y) { return (x.Field
("id") == y.Field
("id")); } public int GetHashCode(DataRow obj) { return obj.ToString().GetHashCode(); } #endregion }}

 

转载于:https://www.cnblogs.com/Unrmk-LingXing/p/4168628.html

你可能感兴趣的文章
icon fonts入门
查看>>
【Django】如何按天 小时等查询统计?
查看>>
测试用例(一)
查看>>
邮件中的样式问题
查看>>
AJAX 状态值与状态码详解
查看>>
php面向对象编程(oop)基础知识示例解释
查看>>
关于根据Build Platform或者OS 加载x86或者x64 dll的问题
查看>>
程序员高效开发的几个技巧
查看>>
hexo 搭建博客
查看>>
建造者模式(屌丝专用)
查看>>
Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点
查看>>
【转】常用的latex宏包
查看>>
酷狗的皮肤文件存放在哪
查看>>
C++的引用
查看>>
T-SQL查询进阶--深入浅出视图
查看>>
Android读取url图片保存及文件读取
查看>>
完整ASP.Net Excel导入
查看>>
判断CPU大小端示例代码
查看>>
循环队列的运用---求K阶斐波那契序列
查看>>
关于git的认证方式
查看>>