【发布时间】:2018-03-31 15:43:24
【问题描述】:
编辑:重新表述问题以更清楚
这是工作代码:
$arr = @(
@('prop0','name0'),
@('prop1','name1'),
@('prop2','name2')
)
$obj = New-Object PsObject
foreach($innerArr in $arr)
{
$obj | Add-Member -NotePropertyName $innerArr[0] -NotePropertyValue $null
}
$obj2 = New-Object PsObject
$count = 0
foreach($innerArr in $arr)
{
$value = 'val' + $count
$obj2 | Add-Member -NotePropertyName $innerArr[1] -NotePropertyValue $value
$count ++
}
for($i=0; $i -lt $arr.Count; $i++)
{
# This is what I want to consolidate into one line
# {
$prop_name = $arr[$i][1]
$obj | Add-Member -NotePropertyName $arr[$i][1] -NotePropertyValue $obj2.$prop_name
# }
}
如何在不将属性名称分配给$prop_name 的情况下执行此操作?
$obj 的输出应如下所示:
PS C:\> $obj
prop0 :
prop1 :
prop2 :
name0 : val0
name1 : val1
name2 : val2
【问题讨论】:
-
你的第一个数组是一个二元素数组。如果您确切地解释您要解决的问题,也许会有所帮助。
-
@Bill_Stewart 什么?你读过帖子吗?
$obj2.$arr[$i][1]正在杀死它 -
对不起,我不清楚。什么问题决定了这种数据结构?
-
你不能按照你的想法去做,因为从那以后它就没有了。您正在将字典变成二维数组
-
伙计们,我把问题说得更清楚了。对此感到抱歉......我很难说出我的要求
标签: arrays powershell indexing properties