에 대한 배열
- 08/26/2020
- 14 분 읽
-
- c
간단한 설명
에 대해 설명합 배열에 있는 데이터 구조물을 설계하 storecollections 의 항목입니다.
긴 설명
배열은 데이터 구조로 설계된 컬렉션을 저장하 항목입니다.항목은 동일한 유형 또는 다른 유형일 수 있습니다.
Windows PowerShell3 에서 시작합니다.,0,0 또는 하나의 객체 컬렉션은어레이의 일부 속성.
배열 만들기 및 초기화
배열을 만들고 초기화하려면 변수에 여러 값을 할당하십시오. 배열에 저장된 값은 쉼표로 구분되고 할당 연산자(=
)에 의해 가변 이름과 구분됩니다.,
예를 들어,배열을 만들라는$A
포함된 일곱 숫자(int)값의 22, 5, 10, 8, 12, 9, 80 입력:
쉼표도 사용될 수 있습을 초기화 한 항목 배열을 배치하여 thecomma 기 전에 하나의 항목입니다.
예를 들어,하나의 항목 배열된$B
포함하는 singlevalue7 개의 입력:
할 수도 있습니다 만들고 초기화를 사용하여 배열의 범위는 통신수(..
).,다음 예제에서는 5 에서 8 까지의 값을 포함하는 배열을 만듭니다.
결과적으로$C
에는 5,6,7 및 8 의 네 가지 값이 포함됩니다.
데이터 유형을 지정하지 않으면 PowerShell 은 각 배열을 objectarray(System.개체). 배열의 데이터 유형을 확인하려면 gettype()메소드를 사용하십시오., 예를 들어,을 결정하는 데이터의 유형$A
배열을 입력:
을 만드 강력한 형식의 배열을,즉,배열을 포함할 수 있는 onlyvalues 특정 유형의 변수를 캐스팅으로 배열 형식 등 string,long,또는 int32. 배열을 캐스트하려면 앞에대괄호로 묶인 배열 유형을 가진 가변 이름., 예를 들어,을 만들 a32 비트 정수 배열된$ia
포함하는 네 개의 정수(1500,2230,3350,4000),유형:
결과적으로는$ia
배열에 정수만 포함될 수 있습니다.
에서 지원되는 모든 유형으로 캐스트되는 배열을 만들 수 있습니다 Microsoft.NET 프레임 워크. 예를 들어Get-Process
가 torepresent 프로세스를 검색하는 객체는 시스템의 것입니다.진단.프로세스 유형., 을 만들 astrongly 입력의 프로세스 개체 배열,다음과 같이 입력한 명령:
배열의 하위 식 operator
배열의 하위 식 운영자 배열을 만들에서 문 insideit. 연산자 내부의 문이 무엇을 생성하든,연산자는이를 배열에 배치합니다. 0 또는 하나의 객체가있는 경우에도 마찬가지입니다.
구문을 배열의 운영자는 다음과 같습니다:
사용할 수 있습 배열 연산자를 만들의 배열로 또 하나의 객체입니다., 예를 들어:
배열 연산자를 스크립트에서 유용할 때 얻고 있지만,donot 는 방법을 알고 많은 개체는 당신이 얻을. 예:
배열 하위 표현식 연산자에 대한 자세한 내용은 about_operators 를 참조하십시오.
배열 요소 액세스 및 사용
배열 읽기
변수 이름을 사용하여 배열을 참조 할 수 있습니다. 배열의 모든 요소를 표시하려면 배열 이름을 입력하십시오., 예를 들어,가정$a
은 anarray 포함하는 정수는 0,1,2,9 까지;입력:
참조할 수 있습니다 배열의 요소를 사용하여 인덱스 시작,atposition0. 색인 번호를 대괄호로 묶습니다., 예를 들어,표시하는 첫 번째 요소는$a
배열을 입력:
전시에서 세 번째 요소는$a
배열,유형:
를 검색할 수 있습니다 일부는 배열의 범위를 사용하여 운영자에 대한 인덱스입니다. 예를 들어,를 검색하는 다섯 번째 요소의 배열을,당신은 wouldtype:
자인의 끝에서 계산한다., 예를 들어,”-1″은 배열의 마지막 요소. 를 표시하는 마지막의 세 가지 요소를 배열의,인덱스 오름차순으로 입력:
입력하는 경우 부정적인 인덱스 내림차순으로 출력 변경합니다.
그러나이 표기법을 사용할 때주의하십시오. 표기법은 경계에서 배열의 시작 부분까지 순환합니다.,
사용할 수 있는 플러스 사업자(+
)을 결합한 범위의 목록과 함께 elementsin 훌륭한 기능들을 가지고 있습니다. 예를 들어,표시하는 요소에서 인덱스 0 위치,2,and4 을 통해 6,유형:
또한,여러 범위와 개별 요소를 사용할 수 있습니다 plusoperator., 예를 들어,list 요소의 영을 네 가지를,여섯과 theelement 에서 여덟 번째 위치 종류:
반복을 통해 배열 요소
사용할 수도 있습니다 반복 구조와 같은 ForEach,위한,그리고 동안 루프,torefer 을 배열의 요소. 예를 들어,ForEach 루프를 사용하여 표시하려면에 있는 요소$a
배열을 입력:
Foreach 루프 반복을 통해 배열을 반환에서 각 값 배열의에 도달할 때까지 배열의 끝.,
For 루프는 배열의 요소를 검사하는 동안 카운터를 늘릴 때 유용합니다. 예를 들어,사용 루프 반환 모든 othervalue 열에서,종류:
사용할 수있는 루프를 표시하는 요소를 배열에까지 definedcondition 실 더 이상 사용할 수 없습니다., 예를 들어,요소를 표시하려면에서$a
배열하는 동안 array index is less than4,유형:
속성의 배열
카운트 또는 길이 또는 LongLength
는 방법을 확인에 있는 항목 배열 를 사용하여Length
속성 또는 그것의Count
별칭입니다. Longlength
는 배열에 than2,147,483,647 개 이상의 요소가 포함 된 경우 유용합니다.
Rank
배열의 차원 수를 반환합니다., PowerShell 의 대부분의 배열에는하나의 차원 만 있습니다. 심지어 생각할 때 당신을 구축 multidimensionalarray;다음 예제와 같이
다음 예제를 만드는 방법을 보여줍니다 진실로 다차원의 배열을 사용하여.Net Framework.
의 방법을 배열
지우기
설정 모든 요소 값이 기본값이 배열”s 요소의 유형입니다.Clear()메서드는 배열의 크기를 재설정하지 않습니다.,
다음 예에서$a
는 객체 배열입니다.
이 예제에서는$intA
은 명시적으로 입력을 포함하는 정수입니다.
ForEach
할 수 있습을 통해 반복하는 모든 요소를 배열에서 수행된 operationfor 각 요소의 배열입니다.
ForEach 메서드에는 서로 다른 작업을 수행하는 여러 가지 오버로드가 있습니다.,
ForEach(scriptblock expression)
ForEach(scriptblock expression,object arguments)
이 방법은 PowerShell v4 에 추가되었습니다.
참고
구문은 스크립트 블록의 사용을 필요로한다. Scriptblock 이 유일한 매개 변수 인 경우 괄호는 선택 사항입니다. 또한 공백이 없어야합니다.방법과 여는 괄호 또는 중괄호.
다음 예제는 foreach 방법을 사용하는 방법을 보여줍니다. 이 경우 배열에있는 요소의 제곱 값을 생성하는 것입니다.,
처럼-ArgumentList
매개 변수의ForEach-Object
,arguments
매개변수의 통과 배열의 인수를 스크립트 blockconfigured 습니다.
ArgumentList 의 동작에 대한 자세한 내용은 about_splatting 을 참조하십시오.,
ForEach(type convertToType)
ForEach
메서드를 사용할 수 있습을 신속하게 캐스트의 요소를 differenttype;다음 예는 어떻게 변환하는 목록의 문자열 날짜를유형입니다.
ForEach(string 속성)
ForEach(string 속성,개체 두 문자)
ForEach
방법도 사용할 수 있습을 빠르게 검색,또는 설정 propertyvalues 에 있는 모든 항목에 대한 컬렉션입니다.,
ForEach(문자열을 지정)
ForEach(문자열이 지,물체 인수)
마지막으로ForEach
방법을 사용할 수 있습을 실행하는 방법에 모든 항목에서 컬렉션입니다.
처럼-ArgumentList
매개 변수의ForEach-Object
,arguments
매개변수의 통과 배열의 인수를 스크립트 blockconfigured 습니다.Windows PowerShell3 에서 시작하는
참고
.,0 속성을 검색하고 executingmethods 각 항목에 대한 컬렉션에서도 수행할 수 있습니다”를 사용하여 Methodsof 스칼라 개체고 컬렉션에”당신은에 대한 자세한 내용을 읽을 수 있는 hereabout_methods.
여기서
는 배열의 요소를 필터링하거나 선택할 수있게합니다. 스크립트를 해야 합 evaluateto 아무것도 다른 것보다:zero(0),빈 문자열$false
또는$null
가 요소를 표시한 후Where
하나가 대한 정의는Where
방법입니다.,
참고.
구문에서 사용의 스크립트를 차단합니다. Scriptblock 이 유일한 매개 변수 인 경우 괄호는 선택 사항입니다. 또한 공백이 없어야합니다.방법과 여는 괄호 또는 중괄호.
Expression
는 스크립트 블록하는 데 필요한 필터링,mode
선택적 인수할 수 있는 추가 선택 기능,그리고numberToReturn
선택적 인수할 수 있는 능력을 제한하는 방법은 많은 itemsare 에서 반환하는 필터입니다.,p>허용되는 값에 대한mode
습니다:
- 기본(0)-모든 항목
- 첫 번째(1)반환 첫 번째 항목
- Last(2)반환 마지막 항목
- SkipUntil(3)-건너뛰 항목할 때까지 조건이 true, return the remainingitems
- 까지(4)-모든 항목을 반환될 때까지 조건이 사실
- Split(5)-배열을 반환 두 요소의
- 첫 번째 요소를 포함 일치하는 항목
- 두 번째 요소를 포함하고 나머지 항목
다음 예제를 선택하는 방법을 보여 줍니다 모든 이상한에서 숫자를 배열입니다.,
이 예시 표시하는 방법을 선택하는 문자열이 비어 있지 않습니다.
Default
Default
모드 필터를 사용하여 항목을Expression
스크립트 블록.
anumberToReturn
가 제공되면 itemsto 반환의 최대 수를 지정합니다.,
참고.
모두Default
모드First
반환 모드 첫 번째(numberToReturn
)항목과 같은 의미로 사용할 수 있습니다.
마지막
SkipUntil
SkipUntil
모드를 모두 건너뜁체에서 컬렉션을 때까지 개체 passesthe 스크립트 블록 식 필터입니다. 그런 다음 테스트하지 않고 나머지 모든 collectionitems 를 반환합니다. 하나의 통과 항목 만 테스트됩니다.
이는 반환 된 컬렉션에는 테스트되지 않은 통과 및 통과하지 않은 항목이 모두 포함되어 있음을 의미합니다.,
반환 된 항목의 수는numberToReturn
인수에 값을 전달하여 제한 될 수 있습니다.
까지
Until
모드 반전SkipUntil
모드입니다. 항목이 스크립트 블록 표현식을 전달할 때까지 acollection 의 모든 항목을 반환합니다. Itempasses 가 scriptblock 식을 통과하면Where
메서드는 항목 처리를 중지합니다.
이것은Where
메소드에서 첫 번째 전달되지 않은 항목 세트를 수신한다는 것을 의미합니다., 한 항목이 통과되면 나머지는 테스트되거나 반환되지 않습니다.
반환 된 항목의 수는numberToReturn
인수에 값을 전달하여 제한 될 수 있습니다.
참고.
모두Until
및SkipUntil
작동하지 않는 전제 하에서 테스트 batchof 항목입니다.
Until
는 첫 번째 패스 전에 항목을 반환합니다.
SkipUntil
는 첫 번째 통과 항목을 포함하여 첫 번째 통과 후 모든 항목을 반환합니다.,
분할
Split
모드는 컬렉션 항목을 두 개의 분리 된 컬렉션으로 분할하거나 그룹화합니다. Scriptblock 식을 통과하는 자들과 그렇지 않은 자들.
anumberToReturn
가 지정된 경우 첫 번째 컬렉션에는 지정된 값을 초과하지 않도록 해당 항목을 포함합니다.
나머지 객체,심지어 표현식 필터를 통과하는 객체는 두 번째 컬렉션에서 반환됩니다.,
을 얻을 배열의 구성원
속성을 가져오려면 그 방법을 배열의와 같은 길이는 시설 및 SetValue 방법을 사용하여 InputObject 매개 변수의Get-Member
합니다.
경우 관하여 배열Get-Member
,PowerShell 항목을 보내 oneat 시간과Get-Member
유형을 반환합의 각 항목에 대한 배열(ignoringduplicates).
InputObject 매개 변수를 사용할 때Get-Member
배열의 멤버를 반환합니다.,
예를 들어 다음 명령은$a
arrayvariable 의 멤버를 가져옵니다.
얻을 수 있습 회원의 배열을 입력하여는 쉼표(,)하기 전에 조금씩는 파이프Get-Member
합니다. 쉼표는 배열을 만듭니다.배열의 배열에서 두 번째 항목. PowerShell 은 배열을 하나의 ata 시간으로 파이프하고Get-Member
는 배열의 멤버를 반환합니다. 다음 두 가지처럼샘플.,
배열
을 변경할 수 있습 배열의 요소를 추가하고자 하는 요소를 배열,andcombine 두 배열의 값을 세 번 배열입니다.
값을 변경한 특정 요소의 배열을 지정합 이름 및 인덱스의 요소를 변경하려는,다음 사용하 theassignment 연산자(=
)을 지정하는 새로운 가치에 대 한 요소입니다., 예를 들어,값을 변경하려면 두 번째 항목$a
배열(인덱스위치 1)to10 입력:
사용할 수도 있습니다 SetValue 방법을 배열의 값을 변경. 다음 예제를 둘째 값을 변경(지수치 1)의$a
arrayto500:
사용할 수 있습니다+=
운영자를 추가하는 요소를 배열입니다. 다음 예제는$a
배열에 요소를 추가하는 방법을 보여줍니다.,
참고.
할 때 사용하는+=
operator,PowerShell 실제로 새로 생성 arraywith 값을 원래의 배열과 가치를 추가했습니다. 작업이 여러 번 반복되거나 배열의 크기가 너무 크면 성능 문제가 발생합니다.
이 쉽지 않은 요소를 삭제하는 배열에서,하지만 당신을 만들 수 있습 newarray 만 포함하는 선택된 요소의 기존 배열입니다., 예를 들어,$t
배열을 가진 모든 요소$a
배열을 제외한 값 index 위치에 2 개의 입력:
을 결합하는 두 개의 배열이 하나의 배열을 사용하여 플러스 사업자(+
). Thefollowing 예제는 두 개의 배열을 만들고 결합한 다음 결합 된 배열을 표시합니다.
결과적으로$z
배열에는 1,3,5 및 9 가 포함됩니다.,
배열을 삭제하려면 배열에$null
값을 할당하십시오. Followingcommand 는$a
변수에서 배열을 삭제합니다.
$a = $null
사용할 수도 있습니다Remove-Item
cmdlet 지만,값을 할당하의$null
isfaster,특히 큰 배열입니다.
0 또는 1 의 배열
Windows PowerShell3.0 에서 시작하여 0 또는 하나의 객체 모음에는 Count and Length 속성이 있습니다. 또한 oneobject 의 배열로 색인을 생성 할 수 있습니다., 이 기능을 사용하면 컬렉션이 두 개 미만의 항목을 가져올 것으로 예상되는 acommand 에서 발생하는 스크립팅 오류를 방지 할 수 있습니다.
다음 예는이 기능을 보여줍니다.
영 개체
중 하나 개체
인덱싱에 대한 지원 시스템입니다.튜플 객체
PowerShell6.1 배열과 유사한 튜플 객체의 인덱싱 된 액세스에 대한 지원을 추가했습니다.,예를 들어,
과는 달리 어레이 및 다른 개체 Tuple 체로 처리 단체할 때 통과하는 파이프라인을 통해 또는 통해 매개 변수는 supportarrays 의 개체입니다.자세한 내용은 시스템을 참조하십시오.튜플.
see
- about_Assignment_Operators
- about_Hash_Tables
- about_Operators
- about_For
- about_Foreach
- about_While