Powershell将两个数组的元素组合在一起

sec*_*ace 7 arrays powershell

我想通过从每个数组中一一选取元素来连接两个数组。并且不要将它们合并或简单地合并

我知道如何将第二个数组添加到第一个数组,如下所示:

$array1 = (0,4,8)
$array2 = (1,5,2)
$array1 += $array2
$array1
Run Code Online (Sandbox Code Playgroud)

结果如下:

0
4
8
1
5
2
Run Code Online (Sandbox Code Playgroud)

但是我怎样才能将它们复制到另一个中,给我这样的输出:

0
1
4
5
8
2
Run Code Online (Sandbox Code Playgroud)

注意:我不想合并它们然后对列表进行排序。

元素需要保持相同的顺序。如何实现这一目标?

Luk*_*uke 8

你可以:

  1. 将所有数组放在括号之间,前面带有美元符号 $( )
  2. 用分号分隔所有数组;

例子:

$Array1 = @('a','b')
$Array2 = @('c','d')

$ConcatenatedArray = $($Array1; $Array2) #this is our special line

$ConcatenatedArray
Run Code Online (Sandbox Code Playgroud)

输出:

a
b
c
d
Run Code Online (Sandbox Code Playgroud)

我们可以验证它是一个以所有元素为单位的数组,而不是两个数组的数组,这是使用逗号作为分隔符时的情况。

$Array1 = @('a','b')
$Array2 = @('c','d')

$ConcatenatedArray = $($Array1; $Array2)

$ConcatenatedArray.Count
Run Code Online (Sandbox Code Playgroud)

输出:

4
Run Code Online (Sandbox Code Playgroud)


Esp*_*o57 4

尝试这样的事情

$array1 = (0,2,4)
$array2 = (1,3,5)

$MaxLen=[Math]::Max($array1.Length, $array2.Length)

$Result=@()

for ($i = 0; $i -lt $MaxLen; $i++)
{ 
    $Result+=$array1[$i]
    $Result+=$array2[$i]
}

$Result
Run Code Online (Sandbox Code Playgroud)