从两个对象构造自定义对象
Construct custom object from two objects
我有两个对象:
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。
这只是一个示例,使用 $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
}
我有两个对象:
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。
这只是一个示例,使用 $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
}