我有两个对象:
PropID ValueX ---------- ------------ 8039 xxxx 8041 xxxx 8042 xxxx
PropID ValueY ---------- ------- 8039 yyyy 8041 yyyy 8042 yyyy
我想最终得到一个包含PropName,ValueX,ValueY(基于PropID)的新对象,如下所示:
PropID ValueX ValueY ---------- ------------ ---------- 8039 xxxx yyyy 8041 xxxx yyyy 8042 xxxx yyyy
我知道这很简单,但是我对此感到生锈,可以伸出援助之手。
*与In Powershell, what's the best way to join two tables into one?不同,因为我不想使用任何第三方cmdlet,而只希望使用本机PowerShell。
答案 0 :(得分:2)
这只是一个使用$o1
作为包含ValueX
的对象数组和$o2
作为包含ValueY
的对象数组的示例。也许这会使您朝着理想的方向开始。
$o1 = @( [pscustomobject]@{
propID = 1
ValueX = 334
}) -as [collections.generic.list[object]]
$o1.add([pscustomobject]@{
propID = 3
ValueX = 34324
})
$o1.add([pscustomobject]@{
propID = 2
ValueX = 534
})
$o2 = @( [pscustomobject]@{
propID = 1
ValueY = 867
}) -as [collections.generic.list[object]]
$o2.add([pscustomobject]@{
propID = 2
ValueY = 873
})
$o2.add([pscustomobject]@{
propID = 3
ValueY = 89722
})
$newobject = $o1 | Foreach-Object {
$_.psobject.copy()
}
$newobject |
Foreach-Object {
$obj = $_
$_ | Add-Member -MemberType NoteProperty -Name ValueY -Value $o2.where{$_.propid -eq $obj.propid}.ValueY
}