DataTable中如何去除相同的列

表如:17 1 18 1 19 1 20 2现在想变成 17 1 20 2就是第二列去除重复项
2024-12-27 08:10:42
推荐回答(1个)
回答1:

思路是循环判断,有重复就删除,无重复的关键列值,放在一个列表中,用于判断。

手打了下,试试下面的代码行不行:

public DataTable FilterDT(DataTable dt, int i)//i表示判断第几列重复
{
    List key = new List();//唯一键值列表
    foreach (DataRow dr in dt.Rows)//循环每行
    {
        string temp = dr[i].ToString();
        if (key.Count(x => x == temp) > 0)//有重复
        {
            dt.Rows.Remove(dr);//移除该行
        }
        else
        {
            key.Add(temp);//重复键值添加到唯一列表
        }
    }
    return dt;
}

调用

DataTable dt = ...;
DataTable dtNew = FilterDT(dt, 1);