サーチ…


前書き

ハッシュテーブルは、キーを値にマッピングする構造体です。詳細はハッシュテーブルを参照してください。

備考

ハッシュテーブルに依存する重要な概念は、 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
}

既存のハッシュテーブルからキー値のペアを削除する

たとえば、remove演算子を使用してハッシュテーブルから値 "Value2"の "Key2"キーを削除する例を次に示します。

$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