在PowerShell中将数组追加到数组中
我想在PowerShell中编程使用位于磁盘上的CSV文件build立一个multidimensional array。 我一直在导入数组到一个临时variables,然后将数组附加到数组。 而不是一个数组数组,我得到了一个总数为一行的数组。 我用更小的数组解决了这个问题,结果如下:
$array1 = "11","12","13" $array2 = "21","22","23" $array3 = "31","32","33" $arrayAll = $array1, $array2, $array3 $arrayAll.Count # returns 3 $arrayAll = @(); $arrayAll += $array1 $arrayAll += $array2 $arrayAll += $array3 $arrayAll.count # returns 9
构build数组的第一种方法工作,但我需要能够使用第二种方法。 我该如何解决?
这是一个常见的问题,数组(和其他集合)可能会“意外”展开。 使用逗号运算符(它使用单个项目制作/强制数组并避免展开):
$array1 = "11","12","13" $array2 = "21","22","23" $array3 = "31","32","33" $arrayAll = $array1, $array2, $array3 $arrayAll.Count # returns 3 $arrayAll = @() $arrayAll += , $array1 $arrayAll += , $array2 $arrayAll += , $array3 $arrayAll.count # returns 3 $arrayAll[1] # gets "21","22","23", ie $array2
不知道我打开你要找的东西,但它可以帮助。
PS> $arrayAll = New-Object int[][] (3,3) PS> $arrayAll[0] = $array1 PS> $arrayAll[1] = $array2 PS> $arrayAll[2] = $array3 PS> $arrayAll.Count 3 PS> $arrayAll[1][2] 23
这是一种编码数组数组的方法。
这是一种编码两维数组的方法
PS> $arrayAll = New-Object 'int[,]' (3,3) PS> $arrayAll[2,0] = 12