ZKX's LAB

怎么读取DataTable某一列的值?然后用c#代码判断是否有重复数据?linq还是怎么做呢? cdatatable 去重复数据

2021-04-07知识5

C# 处理DataTable 重复数据 你可以用HashSet来存储已存在的行 检索速度会快很多 代码如下 不知道你的机子什么配置 我的机子Debug模式100000行数据 用了232毫秒using System;using System.Data;using System.Collections.Generic;using System.Diagnostics;namespace ConsoleApplication1{class Program{static void Main(string[]args){DataTable dataTable=new DataTable();dataTable.Columns.AddRange(new DataColumn[]{new DataColumn(\"A\"),new DataColumn(\"B\"),new DataColumn(\"C\"),new DataColumn(\"D\")});for(int i=0;i;i+){dataTable.Rows.Add(new object[]{ 0,0,\"ABCDEFGHIJKLMNOPQRSTUVWXYZ\"+i.ToString(),0 });dataTable.Rows.Add(new object[]{ 0,0,\"ABCDEFGHIJKLMNOPQRSTUVWXYZ\"+(50000-i).ToString(),0 });}Stopwatch stopwatch=new Stopwatch();stopwatch.Reset();stopwatch.Start();Console.WriteLine(\"DataTable行数:{0}\",dataTable.Rows.Count);HashSet<;string>;hash=new HashSet();NET 3.0以上使用Dictionary,int>;dic=new Dictionary,int>;();NET 2.0可以用这个7a686964616fe78988e69d8331333332616533for(int i=0;i;i+){if(dic.ContainsKey(dataTable.Rows[i。

怎么读取DataTable某一列的值?然后用c#代码判断是否有重复数据?linq还是怎么做呢? 假设你上图表格数据为 datatable dt,列分别为aa,bb,cc,ddvar query=from p in dt.asenumerable()/分组 group p by new { t1=p.field(\"aa\").tostring().substring(0,p。.

怎么读取DataTable某一列的值?然后用c#代码判断是否有重复数据?linq还是怎么做呢? public static void cs(){System.Data.DataTable dt=new System.Data.DataTable();dt.Rows.Add(\"\");var quer=from tb in dt.AsEnumerable()group tb by tb.Field(\"xx\")into xselect new{a=x.Key,b=x};foreach(var c in quer){int i=0;foreach(var d in c.b){i+;}if(i>;1){有重复}}for(int i=0;i;i+){var qu=from tb in dt.AsEnumerable()where tb.Field(\"xx\")=dt.Rows[i][\"xx\"].ToString()select tb;if(qu.Count()>;1){有重复}}}两种方法 看你喜欢哪种

随机阅读

qrcode
访问手机版