连接两个数组?

时间:2015-01-16 09:54:59

标签: powershell

我正在努力解决连接两个数组的语法问题。

基本上,我有两个字符串数组。第一个包含几个元素,第二个只包含一个元素(我使用,运算符创建一个字符串数组:

$array1= ,   "49e8e386-2f20-4139-ad61-a59500820afc", 
             "70a4fad9-5b8f-4750-9d6c-1e69400ed63b", 
             "1e368540-ebb3-4541-ab6e-78bcafaa6cf0"   
$array2=   , "1c1fcc2c-ccef-4898-9562-127b3f749830"  

我想将数组合并到一个新的字符串数组中,但它不能按预期工作。

具体来说,我写道:

$merged = $array1 + $array2

这似乎有效,因为我输出$merged,我得到:

49e8e386-2f20-4139-ad61-a59500820afc
70a4fad9-5b8f-4750-9d6c-1e69400ed63b
1e368540-ebb3-4541-ab6e-78bcafaa6cf0
1c1fcc2c-ccef-4898-9562-127b3f749830

但这是 一个字符串数组:

PS C:\Users\steve> $merged | % { $_.GetType() }

IsPublic IsSerial Name     BaseType
-------- -------- ----     --------
True     True     Object[] System.Array
True     True     String   System.Object
True     True     String   System.Object
True     True     String   System.Object

如您所见,其中一个值是嵌套数组,而不是字符串。由于字符串要求,这会导致我的脚本稍后出现问题。

获取实际字符串数组的正确语法是什么?

1 个答案:

答案 0 :(得分:1)

没关系,问题与第一个数组和,运算符有关。

正确的语法是:

$array1=     "49e8e386-2f20-4139-ad61-a59500820afc", 
             "70a4fad9-5b8f-4750-9d6c-1e69400ed63b", 
             "1e368540-ebb3-4541-ab6e-78bcafaa6cf0"   
$array2=   , "1c1fcc2c-ccef-4898-9562-127b3f749830" 

实际上,只有当数组中只有一个项目时才需要数组运算符。