#region datatable去重
/// <summary>
/// datatable去重
/// </summary>
/// <param name="dtsource">需要去重的datatable</param>
/// <param name="columnnames">依据哪些列去重</param>
/// <returns></returns>
public static datatable getdistincttable(datatable dtsource, params string[] columnnames)
{
datatable distincttable = dtsource.clone();
try
{
if (dtsource != null && dtsource.rows.count > 0)
{
dataview dv = new dataview(dtsource);
distincttable = dv.totable(true, columnnames);
}
}
catch (exception ee)
{
messagebox.show(ee.tostring());
}
return distincttable;
}
/// <summary>
/// datatable去重
/// </summary>
/// <param name="dtsource">需要去重的datatable</param>
/// <returns></returns>
public static datatable getdistincttable(datatable dtsource)
{
datatable distincttable = null;
try
{
if (dtsource != null && dtsource.rows.count > 0)
{
string[] columnnames = gettablecolumnname(dtsource);
dataview dv = new dataview(dtsource);
distincttable = dv.totable(true, columnnames);
}
}
catch (exception ee)
{
messagebox.show(ee.tostring());
}
return distincttable;
}
#endregion
#region 获取表中所有列名
public static string[] gettablecolumnname(datatable dt)
{
string cols = string.empty;
for (int i = 0; i < dt.columns.count; i++)
{
cols += (dt.columns[i].columnname + ",");
}
cols = cols.trimend(',');
return cols.split(',');
}
#endregion
以上就是c# datatable中重复数据去重的内容。