Я создаю многомерный массив
cls
$b=[Collections.ArrayList]::new()
$a=4,5,6
[void]$b.Add($a)
$a1=7,8,9
[void]$b.Add($a1)
"Value is: "+$b[0][1]+" ."
"Size is: "+$b.Count+" ."
""###
function arr(){
$b=[Collections.ArrayList]::new()
$a=4,5,6
[void]$b.Add($a)
$a1=7,8,9
[void]$b.Add($a1)
return $b
}
$c=arr
"Value is: "+$c[0][1]+" ."
"Size is: "+$c.Count+" ."
Вывод:
Value is: 5 .
Size is: 2 .
Value is: 5 .
Size is: 2 .
Теперь все правильно. Функция возвращает массив в исходное состояние, без каких-либо деформаций. Но я не могу знать заранее размер массива, и когда размер массива равен 1 , я получаю следующую проблему:
cls
$b=[Collections.ArrayList]::new()
$a=4,5,6
[void]$b.Add($a)
"Value is: "+$b[0][1]+" ."
"Size is: "+$b.Count+" ."
""###
function arr(){
$b=[Collections.ArrayList]::new()
$a=4,5,6
[void]$b.Add($a)
return $b
}
$c=arr
"Value is: "+$c[0][1]+" ."
"Size is: "+$c.Count+" ."
Вывод:
Value is: 5 .
Size is: 1 .
Value is: .
Size is: 3 .
Когда массив перемещается вне функции он превращается из многомерного в одномерный, и в выводе нет моей ценности. Как я могу избежать этой ошибки?