如何在 PowerShell 5.0 中初始化数组(多维)数组

swa*_*eck 1 arrays powershell multidimensional-array

我正在尝试使用 PowerShell (5.0) 划分工作块,并且很难实例化多维数组。

$n = 456;
$MaxChunks = 6;

$Chunks = @();

for($x = 0; $x -lt $MaxChunks; $x++)
{    
    Write-Host "Creating chunk $x"    
    $Chunks += @();
}
Run Code Online (Sandbox Code Playgroud)

$Chunks.Count总是返回 0 并且我无法通过索引访问 $Chunks 中的任何内容(即为$Chunks[0]空)。

最终,我的目标是访问位于 的数组并向其$Chunks[$i]添加多个System.Data.DataRow对象。但是,正如我所说,我无法访问该索引处的数组,因为该数组从未被实例化。

我已经通读了这个这个,但是我不太能够将哈希表场景转换为我的情况。

Sim*_*lin 5

或者:

[System.Array] $chunks = [System.Array]::CreateInstance( [Int32], 3, 3 );

$chunks[0,0];
0
Run Code Online (Sandbox Code Playgroud)

不是原生PS,但有效。


wOx*_*xOm 5

PS不使用+=从头产生整个阵列不论其大小的,因为它是一种可怕的方法,再现和各时间整个阵列副本; 通过循环语句(例如 foreach、for、while)有一个更快、更简单的输出集合;ArrayList 对象用于频繁非顺序修改数组的情况。