大家帮忙:程序中如何对数据“去重”?在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);