ja-JP/about_Hash_Tables.help.txt
|
TOPIC about_Hash_Tables 簡単な説明 キーと値のペアを格納するハッシュテーブル、および順序付き ディクショナリの作成と使用方法について説明します。 詳細な説明 ハッシュテーブルは、キーと値のペアを格納する [System.Collections.Hashtable] オブジェクトです。連想配列や ディクショナリとも呼ばれます。順序付きディクショナリは [System.Collections.Specialized.OrderedDictionary] オブジェクトで、 PowerShell 3.0 以降で使用できます。 順序付きディクショナリは、キーが必ず記述した順序で現れる点が ハッシュテーブルと異なります。ハッシュテーブルのキーの順序は 不確定です。 ハッシュテーブルの作成 ハッシュテーブルの構文は次のとおりです。 @{ <name> = <value>; [<name> = <value> ] ...} 例: $hash = @{ 1 = 'one' 2 = 'two' 'three' = 3 } $hash 順序付きディクショナリの作成 [ordered] 型アクセラレーターを使用します。 $dictionary = [ordered]@{ 1 = 'one' 2 = 'two' 'three' = 3 } $dictionary 順序付きディクショナリをハッシュテーブルにキャストできます。 [hashtable]$newHash = [ordered]@{ Number = 1 Shape = "Square" Color = "Blue" } キーと値へのアクセス Keys プロパティと Values プロパティを使用します。 $hash.Keys $hash.Values メンバー表記またはインデックス表記で値にアクセスします。 $hash.three # メンバー表記 $hash['three'] # インデックス表記 $hash[2] 項目の反復処理 foreach を使用します。 foreach ($Key in $hash.Keys) { "'$Key' の値は: $($hash[$Key])" } ForEach-Object を使用します。 $hash.Keys | ForEach-Object { "'$_' の値は: $($hash[$_])" } GetEnumerator() を使用すると、キーと値を同時に取得できます。 $hash.GetEnumerator() | ForEach-Object { "'$($_.Key)' の値は: $($_.Value)" } 項目の追加と削除 空のハッシュテーブルを作成します。 $hash = @{} インデックス表記、Add メソッド、または加算演算子で追加します。 $hash["Time"] = "Now" $hash.Add("Time", "Now") $hash = $hash + @{Time = "Now"} Remove メソッドで項目を削除します (減算演算子は使えません)。 $hash.Remove("Time") オブジェクトを値に持つハッシュテーブル キーや値には任意の .NET オブジェクトを使用できます。 $p = @{ "PowerShell" = (Get-Process powershell) "Notepad" = (Get-Process notepad) } $p.PowerShell 入れ子のハッシュテーブル 値にハッシュテーブルを格納できます。 $p = $p + @{ "Hash2" = @{ a = 1; b = 2; c = 3 } } $p.Hash2.b ハッシュテーブルの並べ替え GetEnumerator() と Sort-Object を組み合わせて並べ替えます。 $p.GetEnumerator() | Sort-Object -Property Key $p.GetEnumerator() | Sort-Object -Property Value -Descending ハッシュテーブルからのオブジェクト作成 ハッシュテーブルを [pscustomobject] にキャストすると、 オブジェクトを作成できます。詳細は about_PSCustomObject を 参照してください。 文字列からハッシュテーブルへの変換 ConvertFrom-StringData を使用すると、キーと値の文字列を ハッシュテーブルに変換できます。 $string = @" Msg1 = Type "Windows". Msg2 = She said, "Hello, World." Msg3 = Enter an alias (or "nickname"). "@ ConvertFrom-StringData $string 関連項目 about_Arrays about_Objects about_PSCustomObject ConvertFrom-StringData ---- 原文: PowerShell-Docs (CC BY 4.0) の翻訳 / PSHelpJaJP |