我正在努力解决连接两个数组的语法问题。
基本上,我有两个字符串数组。第一个包含几个元素,第二个只包含一个元素(我使用,
运算符创建一个字符串数组:
$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
如您所见,其中一个值是嵌套数组,而不是字符串。由于字符串要求,这会导致我的脚本稍后出现问题。
获取实际字符串数组的正确语法是什么?
答案 0 :(得分:1)
没关系,问题与第一个数组和,
运算符有关。
正确的语法是:
$array1= "49e8e386-2f20-4139-ad61-a59500820afc",
"70a4fad9-5b8f-4750-9d6c-1e69400ed63b",
"1e368540-ebb3-4541-ab6e-78bcafaa6cf0"
$array2= , "1c1fcc2c-ccef-4898-9562-127b3f749830"
实际上,只有当数组中只有一个项目时才需要数组运算符。