我需要将两个文本文件与两个数据表 dt1 和 dt2 中的这些列进行比较:
文件1:A1,A2,A3,A4,A5,A6,A7,A8,A9,10
文件2:A1,A2,A4,A6,A8,A9,A10,A11,A12,A13,A14
我需要将 File1 中的列的行值复制到 File2,如果 File1 中不存在该列,则插入一个管道
我试过这个:
foreach($col in $dt2.Columns)
{
if($dt1.Columns.Contains($col.ColumnName))
{
[void]$line.Append($dt1.Rows[$i][$col1.ColumnName])
[void]$line.Append("|")
}
else
{[void]$line.Append("|")}
}
$line 是 StringBuilder 对象。
我还尝试使用嵌套的 foreach 循环将文件 1 中的每一列与文件 2 中的每一列进行比较,但这也没有帮助。我采用了数据表列的枚举器,并使用 while 循环移动下一步,然后采用当前指针,但这也无济于事。
Columns 属性 ($dt2.Columns) 不返回列名字符串数组,而是返回 DataColumns 数组。 因此,您的 Contains() 方法应该运行在 $dt1.Columns.ColumnName 并且不在 $dt1.列