C# 高效过滤DataTable 中重复数据方法
使用DataView,然后设置ToTable,设置几个字段和一个布尔值,表示这些字段作为一个整体,在这个表内不允许重复,示例代码:
namespace A { class Program { static void Main(string[] args) { DataTable dt = new DataTable(); dt.Columns.Add("Id",typeof(int)); Random r = new Random(DateTime.Now.Millisecond); //随机生成1000行记录 for (int i = 0; i < 1001; i++) { dt.Rows.Add(r.Next(1, 11)); } DataView dv = new DataView(dt); dt = dv.ToTable(true, "Id"); //对Id进行过滤,true表示使用distinct方法 foreach (DataRow item in dt.Rows) { Console.WriteLine(item["Id"].ToString()); } } } }
上面datatable只有一列,如果是多列的话,去重如下
DataView dv = new DataView(dt); dt = dv.ToTable(true, new string[] { "Id","Value" });