arrays - Powershell 将两个数组的元素组合在一起
问题描述
我想通过一个接一个地从每个数组中挑选元素来加入两个数组。并且没有将它们合并或简单合并
我知道如何将第二个数组添加到第一个数组,如下所示:
$array1 = (0,4,8)
$array2 = (1,5,2)
$array1 += $array2
$array1
结果如下:
0
4
8
1
5
2
但是我怎样才能将它们复制到另一个给我这样的输出:
0
1
4
5
8
2
注意:我不想合并它们然后对列表进行排序。
元素需要保持相同的顺序。那将如何实现?
解决方案
尽管 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()
推荐阅读
- reactjs - React Native:无法从不同组件的函数体内更新组件
- css - 在融合中摆脱内联 CSS 样式属性
- c++ - 为什么我不能在声明中定义静态字段?
- python - 我们如何使用带有多个 _ 的 split 函数
- java - 如何在 gitlab-ci build 中跳过前面的 maven 目标?
- nlp - 如何用spacy获得依赖树的高度?
- vb.net - 暂停调试器时如何阻止“不包括 System.Windows.Forms.pdb”窗口打开?
- typescript - Typescript,结合元组元素的对象类型
- jquery - 如何使用 JQuery 返回单击的按钮的值?
- javascript - 将授权令牌从父窗口发送到 iframe 来源,以便 iframe 来源可以进行调用