我正在尝试使用位于磁盘上的CSV文件以编程方式在PowerShell中构建多维数组。我一直在将数组导入到临时变量中,然后将数组追加到数组中。我得到的不是行列数组,而是行总数的单个数组。我用较小的数组算出了以下结果:

$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

构建数组的第一种方法可行,但是我需要能够使用第二种方法。我该如何解决?

最佳答案

这是一个常见的陷阱,数组(和其他集合)可能会“意外地”展开。使用逗号运算符(它使用单个项目创建/强制执行一个数组,并避免展开):

$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", i.e. $array2

关于arrays - 在PowerShell中将一个数组附加到一个数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6157179/

10-12 04:17