如何从数据表中删除重复的行

时间:2018-03-08 06:12:32

标签: powershell datatable

如何从DataTable中删除重复的行?

我有Datatable1& Datatable2Datatable1有5行,Datatable2有1行。

当我拨打$Datatable1.Merge($Datatable2)时,它会产生7行而不是6行。 重复行来自Datatable2

如何删除此副本?

2 个答案:

答案 0 :(得分:0)

试试这个:

$Datatable1.Merge($Datatable2)
$Datatable1=$Datatable1.DefaultView.ToTable($true)

答案 1 :(得分:0)

将OP自己的解决方案作为实际答案发布:

function RemoveDups {
    Param($dt)

    $distinct = New-Object "System.Data.DataTable" 
    $hash = New-Object "System.Collections.Generic.HashSet[string]"

    foreach ($column in $dt.Columns) {
        $distinct.Columns.Add($column.ToString()) | Out-Null
    }

    foreach ($row in $dt.rows) {
        $columnsToCheck = [string]($row.COLUMNNAME)
        $result = $hash.Add($columnsToCheck)

        if ($result -eq $true) {
            [void]$distinct.Rows.Add($row.ItemArray)
        }
    }
    return ,$distinct
}