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-08-03 11:48:40

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

C# datatable中重复数据去重

#region datatable去重 /// <summary> /// datatable去重 /// </summary> /// <param name="dtSource">需要去重的datatable</param> /// <param name="columnNames">依据哪些列去重</param> /// <returns></returns> pu

linq 去掉重复数据 再调用分页方法(分页分发已有)

问题描述 适合调用这个方法的(有更适合的分页方法也可以!)新手求指教! 解决方案 解决方案二:首先,重复数据的定义是什么?所有字段重复么?然后,为什么数据库里有重复数据?解决方案三:引用1楼romanchaos的回复: 首先,重复数据的定义是什么?所有字段重复么?然后,为什么数据库里有重复数据? 根据指定的的字段进行分组每一组只留下一条数据再把剩余的数据进行分页解决方案四:query=query.Groupby(c=>c.分组字段).select(c=>c.first()不知道行不行.没试过,

ASP.NET DataTable去掉重复行的2种方法

 这篇文章主要介绍了ASP.NET DataTable去掉重复行的2种方法,本文直接给出去重代码,需要的朋友可以参考下     第一种,使用Linq查询表达式,code如下 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 DataTable testtable = new DataTable(); testtable.Columns.Add("ID"); testtable.Columns.Add("ProductName&quo

excel-asp.net把DataTable里的数据导出到Excel 并且要做合并 某列里多行合并的操作

问题描述 asp.net把DataTable里的数据导出到Excel 并且要做合并 某列里多行合并的操作 把DataTable里的数据导出到Excel 并且要做合并 某列里多行合并的操作 请问有什么方法,求大神指教.谢谢了. 解决方案 http://m.baidu.com/from=1011267h/bd_page_type=1/ssid=0/uid=0/pu=usm%400%2Csz%401321_1004%2Cta%40utouch_2_4.1_11_2.1/baiduid=974ADEE1

如何对datatable中的数据进行删选以及合并行

问题描述 如何对datatable中的数据进行删选以及合并行 如题,我从数据库查出来一组数据并放到了datatable中 现在要把这个datatable里面重复的数据给合并在一起 然后再放到一个新的datatable比如这个表中中三条这样的数据:姓名 部门 分数 张三 研发部 96 张三 研发部 99 张三 研发部 89然后把这样的数据合并成这样一行的数据并放到新的datatable中: 张三 研发部 284(284是上面3条数据分数列相加的和)这个datatable中至少有400条+的数据,求

select-c#中用linq查询datatable的问题

问题描述 c#中用linq查询datatable的问题 之前用datetable的select方法来查询,发现这个方法非常诡异,有时候会查询到一些不对的结果.所以就想换过用linq来查.但用了一会出现了一个问题.就是我希望以数据表中的一个以时间格式的字段(如:2014-9-17 23:59:17)进行查询时,用Field转换这个字段的数据发现转换不了,系统报错了..请问应该怎么解救这个问题啊? 解决方案 .Cast().Where(x => DateTime.Parse(x["字段&quo

c#-C# Repeater 绑定的数据重复数据改变颜色

问题描述 C# Repeater 绑定的数据重复数据改变颜色 求后台一个方法,根据dataTable的一列判断数据是否重复,重复改变颜色. 解决方案 protected void rpInCome_ItemDataBound(object sender, RepeaterItemEventArgs e) { if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType==ListItemType.AlternatingItem) { Re

asp.net中dataset删除重复数据的方法

DataTable 中的数据如下: id key value 1 a aa 1 a aa 2 b bb 2 b bb 3 c cc 3 c cc 现在想要让DataTable变成这个样子的 id key value 1 a aa 2 b bb 3 c cc 代码 void DeleteSameRow(DataSet ds)   {   ArrayList indexList = new ArrayList();   // 找出待删除的行索引   for (int i = 0; i < ds.Ta

在Oracle中如何删除表中设计重复数据

oracle|设计|数据|重复 我们可能会出现这种情况,某个表原来设计不周全,导致表里面的数据数据重复,那么,如何对重复的数据进行删除呢? 重复的数据可能有这样两种情况,第一种时表中只有某些字段一样,第二种是两行记录完全一样. 一.对于部分字段重复数据的删除 先来谈谈如何查询重复的数据吧. 下面语句可以查询出那些数据是重复的: select 字段1,字段2,count(*) from 表名 group by 字段1,字段2 having count(*) > 1 将上面的>号改为=号就可以查询