首页 > 解决方案 > Powershell 将两个数组的元素组合在一起

问题描述

我想通过一个接一个地从每个数组中挑选元素来加入两个数组。并且没有将它们合并或简单合并

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

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

结果如下:

0
4
8
1
5
2

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

0
1
4
5
8
2

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

元素需要保持相同的顺序。那将如何实现?

标签: arrayspowershell

解决方案


尽管 Esperento57 为您提供了一个完美的工作解决方案,但这是我的想法,它也允许长度不同的数组。System.Collections.ArrayList如果您有大型数组要组合,它使用 a添加数组中的值以获得更好的性能。

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

$len1 = $array1.Length
$len2 = $array2.Length
$maxLength = [Math]::Max($len1, $len2)

$listResult = New-Object System.Collections.ArrayList
for ($i = 0; $i -lt $maxLength; $i++) {
    if ($i -lt $len1) { [void] $listResult.Add($array1[$i]) }
    if ($i -lt $len2) { [void] $listResult.Add($array2[$i]) }
}

$listResult.ToArray()

推荐阅读