2014-07-24 4 views
0

배열에 10 개의 항목 모음을 복사하여 인덱스 할 수 있어야합니다. 따라서 CopyTo 메서드를 사용하고 컬렉션을 수용 할만큼 충분히 큰 대상 배열을 지정해야합니다.특정 길이의 빈 배열을 어둡게 만드는 방법

그래서 CopyTo을 호출하기 전에 특정 크기의 빈 배열을 희미하게해야합니다. 이 작업을 수행하기 위해 올바른 PowerShell 구문을 찾을 수없는 것 같습니다.

나를 위해 작동하지 않았다 :

$snapshot = New-Object System.Array 10; 

뉴 - 대상 : 생성자를 찾을 수 없습니다. System.Array 유형의 적절한 생성자를 찾을 수 없습니다. 편집

함께 주위 일한

:

$snapshot = @() 

편집 :
좋아, 미안에 대한 그

$snapshot = New-Object System.Collections.ArrayList; 
$snapshot.AddRange($slider); 
+0

가능한 복제본 [PowerShell 배열 초기화] (http://stackoverflow.com/questions/226596/powershell-array-initialization) – Filburt

답변

0

나는이 트릭을 할해야한다고 생각 . 이 하나의 테스트 : 그냥 PowerShell에서이 작업을 수행하는 새로운 배열을 만들 생각

> $snapshot = New-Object object[] 10 
> $snapshot.Length 
10 
+1

슬프게도. 크기는 0입니다. –

+0

네, 두 번째 작품. 고마워. –

0

합니다.

# A "collection of ten items" 
$collection = @(1,2,3,4,5,6,7,8,9,0) 

#This command creates a new array, sizes it, and copies data into the new array 
$newCollection = $collection 

Powershell은이 경우 새 배열을 만듭니다. 배열의 크기를 지정할 필요가 없습니다. Powershell은 자동으로 크기를 조정합니다. 배열에 요소를 추가하면 PowerShell은 하위 수준 언어에서해야하는 지루한 initializeNew-copy-deleteOld 루틴을 처리합니다.

$ newCollection은 $ collection이 참조하는 동일한 배열에 대한 참조가 아닙니다. 완전히 새로운 배열에 대한 참조입니다. $ collection 수정은 $ newCollection에 영향을 미치지 않으며 그 반대의 경우도 마찬가지입니다.

+0

불행히도 이것은 내 요구 사항을 해결하지 못합니다. 특정 길이의 빈 배열이 필요합니다. 전적으로 PS 배열을 조작하는 것이 아니라 .NET 라이브러리에서 사용자 정의 컬렉션 유형으로 작업하고 있습니다. –

관련 문제