在Powershell中将对象添加到容器

时间:2015-12-03 10:56:19

标签: powershell

我正在尝试在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"})

没有。是否无法使用函数调用向元素添加元素?

1 个答案:

答案 0 :(得分:2)

您需要先评估表达式Person "Bob" "Hope",然后才能添加它。

你可以这样轻松地做到这一点:

$container.Add($(Person "Bob" "Hope"))

(注意添加的$())。