Во-первых, пожалуйста, не используйте операцию +=
с массивами: это сильно ухудшит производительность на больших массивах.Поскольку вы заранее знаете размер массива, вы можете заранее выделить всю необходимую память:
$array1 = New-Object object[] $arrayY.Length
(вы можете использовать более конкретный тип вместо object
: int
или float
/ double
будет работать)
Далее, вместо того, чтобы назначать каждый массив переменной, вы можете вместо этого создать массив массивов:
$arrayX = 0..2
$arrayY = 0..10
$resultArrays = New-Object int[][] $arrayX.Length
for ($x = 0; $x -lt $resultArrays.Length; ++$x)
{
$resultArrays[$x] = New-Object int[] $arrayY.Length
}
for ($y = 0; $y -lt $arrayY.Length; ++$y)
{
for ($x = 0; $x -lt $arrayX.Length; ++$x)
{
$resultArrays[$x][$y] = $arrayX[$x] + $arrayY[$y];
}
}
for ($x = 0; $x -lt $resultArrays.Length; ++$x)
{
Write-Output "array $($x): $($resultArrays[$x] -join ' ')"
}