programing

PowerShell에서 어레이의 어레이에 어레이 추가

yellowcard 2023. 7. 24. 22:24
반응형

PowerShell에서 어레이의 어레이에 어레이 추가

디스크에 있는 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

어레이를 구축하는 첫 번째 방법은 작동하지만 두 번째 방법을 사용할 수 있어야 합니다.이거 어떻게 고쳐요?

일반적인 gotcha이며 어레이(및 기타 컬렉션)가 "예상치 못한" 전개될 수 있습니다.쉼표 연산자를 사용합니다(단일 항목으로 배열을 만들고 적용하며 롤링을 방지함).

$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

당신이 무엇을 찾고 있는지 잘 모르겠지만 도움이 될 수 있습니다.

PS> $arrayAll = New-Object int[][] (3,3)
PS> $arrayAll[0] = $array1
PS> $arrayAll[1] = $array2
PS> $arrayAll[2] = $array3

PS> $arrayAll.Count
3

PS> $arrayAll[1][2]
23

배열을 코딩하는 방법입니다.

2차원 배열을 코딩하는 방법은 다음과 같습니다.

PS> $arrayAll = New-Object 'int[,]' (3,3)
PS> $arrayAll[2,0] = 12

언급URL : https://stackoverflow.com/questions/6157179/append-an-array-to-an-array-of-arrays-in-powershell

반응형