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