수색…


소개

해시 테이블은 키를 값에 매핑하는 구조입니다. 자세한 내용은 해시 테이블 을 참조하십시오.

비고

해시 테이블에 의존하는 중요한 개념은 Splatting 입니다. 반복적 인 매개 변수를 사용하여 많은 수의 호출을 작성하는 데 매우 유용합니다.

해시 테이블 만들기

빈 HashTable 생성의 예 :

$hashTable = @{}

데이터가있는 HashTable 생성의 예 :

$hashTable = @{
    Name1 = 'Value'
    Name2 = 'Value'
    Name3 = 'Value3'
}

키로 해시 테이블 값에 액세스하십시오.

해시 테이블을 정의하고 키를 사용하여 값에 액세스하는 예

$hashTable = @{
    Key1 = 'Value1'
    Key2 = 'Value2'
}
$hashTable.Key1
#output
Value1

속성 이름에 잘못된 문자가있는 키에 액세스하는 예는 다음과 같습니다.

$hashTable = @{
    'Key 1' = 'Value3'
    Key2 = 'Value4'
}
$hashTable.'Key 1'
#Output
Value3

해시 테이블에 대한 루핑

$hashTable = @{
    Key1 = 'Value1'
    Key2 = 'Value2'
}

foreach($key in $hashTable.Keys)
{
    $value = $hashTable.$key
    Write-Output "$key : $value"
}
#Output
Key1 : Value1
Key2 : Value2

기존 해시 테이블에 키 값 쌍 추가

예를 들어, 더하기 연산자를 사용하여 "Value2"값이있는 "Key2"키를 해시 테이블에 추가하려면 다음을 수행하십시오.

$hashTable = @{
    Key1 = 'Value1'
}
$hashTable += @{Key2 = 'Value2'}
$hashTable

#Output

Name                           Value
----                           -----
Key1                           Value1
Key2                           Value2

예를 들어 Add 메서드를 사용하여 "Value2"값이있는 "Key2"키를 해시 테이블에 추가하려면 다음을 수행합니다.

$hashTable = @{
    Key1 = 'Value1'
}
$hashTable.Add("Key2", "Value2")
$hashTable

#Output

Name                           Value
----                           -----
Key1                           Value1
Key2                           Value2

키 및 키 - 값 쌍을 통한 열거

키를 통한 열거

foreach ($key in $var1.Keys) {
    $value = $var1[$key]
    # or
    $value = $var1.$key 
}

키 - 값 쌍을 통한 열거

foreach ($keyvaluepair in $var1.GetEnumerator()) {
    $key1 = $_.Key1
    $val1 = $_.Val1
}

기존 해시 테이블에서 키 값 쌍을 제거합니다.

예를 들어 해시 테이블에서 값 "Value2"가있는 "Key2"키를 제거하려면 remove 연산자를 사용합니다.

$hashTable = @{
    Key1 = 'Value1'
    Key2 = 'Value2'
}
$hashTable.Remove("Key2", "Value2")
$hashTable

#Output

Name                           Value
----                           -----
Key1                           Value1


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow