Arrays 无法将数据存储到数组变量中

Arrays 无法将数据存储到数组变量中,arrays,powershell,Arrays,Powershell,我想在PowerShell中的一个数组变量中添加一些数据。但它显示的错误类似于“索引超出了数组的边界”。我得到的是: $test = @() for ($i = 0 ; $i -lt 20; $i++) { $test[$i] = $i } $test 它显示的错误是“索引超出了数组的边界” PowerShell中是否有任何方法将数据存储到数组变量中。请尝试以下操作- $test = @() for($i = 0 ; $i -lt 20; $i++) { $test += $i

我想在PowerShell中的一个数组变量中添加一些数据。但它显示的错误类似于“索引超出了数组的边界”。我得到的是:

$test = @()
for ($i = 0 ; $i -lt 20; $i++)
{
    $test[$i] = $i
}
$test
它显示的错误是“索引超出了数组的边界”

PowerShell中是否有任何方法将数据存储到数组变量中。

请尝试以下操作-

$test = @()
for($i = 0 ; $i -lt 20; $i++)
{
    $test += $i
}
$test
$test[$i]
是数组的元素之一,显然,如果您试图在其中存储20个元素,它必然会给您
ArrayOutOfBounds
异常。使用
+=
运算符向现有数组添加值。 存储完元素后,您可以访问数组的各个元素,如
$test[0]..$test[19]
(因为数组的索引从
0
开始)。

$test=@()
是一个动态大小的数组。如果要使用,则需要在循环中附加到它:

$test = @()
for ($i = 0 ; $i -lt 20; $i++) {
    $test += $i
}
或(更好):

或者(甚至更好,至少在这种特殊情况下):

如果要通过索引访问分配值,则需要定义具有固定大小的数组:

$test = New-Object Object[] (20)
for ($i = 0 ; $i -lt 20; $i++) {
    $test[$i] = $i
}
或者使用所需数量的元素预加载动态大小的数组:

$test = 1..20 | ForEach-Object { $null }
for ($i = 0 ; $i -lt 20; $i++) {
    $test[$i] = $i
}
$test = New-Object Object[] (20)
for ($i = 0 ; $i -lt 20; $i++) {
    $test[$i] = $i
}
$test = 1..20 | ForEach-Object { $null }
for ($i = 0 ; $i -lt 20; $i++) {
    $test[$i] = $i
}