Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将对象添加到Powershell中的容器_Powershell - Fatal编程技术网

将对象添加到Powershell中的容器

将对象添加到Powershell中的容器,powershell,Powershell,我正在尝试向Powershell中的容器添加对象: function Person { param ($FirstName, $LastName) $object = [PSCustomObject]@{ a=$FirstName; b=$LastName } return $object } $container = New-Object -TypeName System.Collections.ArrayList $result = Person "Bil

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

没有。无法使用函数调用将元素添加到容器中吗?

您需要先计算表达式
Person“Bob”“Hope”
,然后才能添加它

您可以像这样轻松地执行此操作:

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

(注意添加的
$()
)。

在这种情况下不需要$。如果您正在进行字符串插值(
“hello$(Person“Hope”“Leslie”),您是否绝望了?
),那么这是必要的。