日期:2014-05-20  浏览次数:20475 次

大家帮忙:程序中如何对数据“去重”?在DataSet或DataTable或HashTable以及集合中。
如题,有此需求,想把获得的数据集中的数据做“去重”操作,把里面某字段有重复内容的记录去掉。
尝试过:DataRow[]   drCorp   =   dtCorp.Select( "1=1   Group   By   CorpID ")类似,失败!
请大家积极帮助呵呵。谢谢!

------解决方案--------------------
up,学习中
------解决方案--------------------
有可能的话,使用sql语句提前去重。
如果不允许,那就遍历+判断,生成一个新的datatable
------解决方案--------------------
复杂一点的可以写个函数,然后一行一行取出某字段数据保存到一个哈希表中.
在存入的时候看是否在这个哈希表中,如果不在就插入到哈希表,存在的话就把datarow删除.
再保存table.
------解决方案--------------------
好像没有直接办法. DataTable dt = new DataTable(); dt.Columns.Add( "CorpID ", typeof(int)); dt.Rows.Add(1); dt.Rows.Add(2); dt.Rows.Add(3); dt.Rows.Add(3); dt.Rows.Add(2); DataGrid g = new DataGrid(); g.DataSource = dt.DefaultView; g.DataBind(); this.panel1.Controls.Add(g); DataView dv = dt.DefaultView; dv.Sort = "CorpID "; for (int i = 1; i < dv.Count; i++) { if (dv[i][0].ToString() == dv[i - 1][0].ToString()) { dv[i].Row.Delete(); } } g = new DataGrid(); g.DataSource = dt.DefaultView; g.DataBind(); this.panel1.Controls.Add(g);