C# 用Linq实现DataTable实现重复数据过滤

未过滤前:

过滤后(仅会过滤掉完全一样的数据):

代码如下:

DataTable dt = this.JsonToDataTable("[{\"Code\":\"SortId\",\"Name\":\"SortId\"},{\"Code\":\"SortCode\",\"Name\":\"编号\"},{\"Code\":\"SolutionName\",\"Name\":\"名称\"},{\"Code\":\"SortId\",\"Name\":\"SortId\"},{\"Code\":\"SortId\",\"Name\":\"SortId\"},{\"Code\":\"SortId001\",\"Name\":\"SortId\"}]");
            DataTable dtSort = dt.Clone();
            var query = from t in dt.AsEnumerable()
                        group t by new { t1 = t.Field<string>("Code"),t2 = t.Field<string>("Name") } into m
                        select new
                        {
                            code = m.Key.t1,
                            name=m.Key.t2,
                            rowcount = m.Count()
                        };
            if (query.ToList().Count > 0)
            {
                query.ToList().ForEach(q =>
                {
                    DataRow dr = dtSort.NewRow();
                    dr["Code"] = q.code;
                    dr["Name"] = q.name;
                    dtSort.Rows.Add(dr);
                });
            }
时间: 2024-12-24 18:01:55

C# 用Linq实现DataTable实现重复数据过滤的相关文章

.Net多个DataTable合并,及过滤掉DataTable中重复数据行

DataTable dt01= new DataTable(); DataTable dt02= new DataTable(); DataTable dtRs = new DataTable(); dt01=sqlHelper.GetDataTable(strSQL001) dt02=sqlHelper.GetDataTable(strSQL002) //数据表dt02与dt01合并 dt01.Merge(dt02); //多个表合并可能产生重复数据,过滤掉重复数据 DataView dv =

Linq使用Distinct删除重复数据时如何指定所要依据的成员属性zz

最近项目中在用Linq Distinct想要将重复的资料去除时,发现它跟Any之类的方法有点不太一样,不能很直觉的在呼叫时直接带入重复数据判断的处理逻辑,所以当我们要用某个成员属性做重复数据的判断时,就必需绕一下路,这边稍微将处理的方法做个整理并记录一下. 首先为了方便接下去说明,我们必须先来准备后面会用到的数据类别,这边一样用笔者最常用来示范的Person类别,内含两个成员属性ID与Name. view source print? 01.public struct Person 02.{ 03

两个 DataTable 读取重复数据

今天正好用到Excel 导入转换成table , 文件中数据要和数据库里数据进行比对,有重复的抛出重复数据. 和大家分享下,欢迎高手留言指点.有问题可以留言关注! /// <summary> /// 验证上传文件中是否含有数据库数据 /// </summary> /// <param name="dt1">excel文件中数据</param> /// <param name="dt2">数据库中数据<

C# DataTable 去重复数据方法

//获取dt中Id,Value 2个字段不重复的数据 newDt = dt.DefaultView.ToTable(true, "Id","Value" ); 原文地址:https://www.cnblogs.com/zhang1f/p/11667053.html

转:去掉DataTable重复数据(程序示例比较)

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();

取两个DataTable的交集,删除重复数据

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 /// <summary>         /// 取两个DataTable的交集,删除重复数据         /// </summary>         /// <param name="sourceDataTable">源DataTable</param>         

在一个大DataTable的基础上去除重复数据,分别创建2个小DataTable,省去多次数据库连接,提高效率,加快程序运行

DataTable tab = new DataTable(); tab = DBUtil.GetDataSet(strCmd, "TESTA.V_YHJ_VIP_WX_XSMX").Tables[0]; 创建一个小表: DataView view = new DataView(tab); DataTable orderTable = view.ToTable(true, "ORDERDATE", "MEMBER_CODE", "INV

去除DataTable重复数据的三种方法

其中要避免目标库插入重复数据.这重复数据可能是源数据库本身就有重复数据,还有就是已经插入避免重复插入. 过滤自身重复数据解决方案 第一种:采用DataView.ToTable()方法 DataView.ToTable 方法 .NET Framework 2.0 其根据现有 DataView 中的行,创建并返回一个新的 DataTable. 重载列表 名称 说明 DataView.ToTable () 根据现有 DataView 中的行,创建并返回一个新的 DataTable. 由 .NET Co

一些常用的方法(1)--去除DataTable中的重复数据

private DataTable Display(DataTable dtSource)        {            DataTable dtTemp = dtSource.Copy();            foreach (DataRow dr in dtSource.Rows)            {                DataRow[] drRepeat = dtTemp.Select("AA='" + dr["AA"].ToS