我正在尝试在Powershell中向容器中添加对象:
function Person {
param ($FirstName, $LastName)
$object = [PSCustomObject]@{
a=$FirstName;
b=$LastName
}
return $object
}
$container = New-Object -TypeName System.Collections.ArrayList
$result = Person "Billy" "Kid"
[void]$container.Add($result)
[void]$container.Add(Person "Bob" "Hope")
[void]$container.Add({Person "Mad" "Max"})
foreach ($ob in $container) {
Write-Output $ob."a"
}
$container
这一行:
[void]$container.Add($result)
工作,意味着在foreach循环中打印正确的值。但行:
[void]$container.Add(Person "Bob" "Hope")
[void]$container.Add({Person "Mad" "Max"})
没有。是否无法使用函数调用向元素添加元素?
答案 0 :(得分:2)
您需要先评估表达式Person "Bob" "Hope"
,然后才能添加它。
你可以这样轻松地做到这一点:
$container.Add($(Person "Bob" "Hope"))
(注意添加的$()
)。