Powershellで多次元配列に要素を追加する時にはまった

Powershellで多次元配列に要素を突っ込もうとしてはまった部分です。

下記コードはHTMLのDOMを分析するために使っている関数の1つで、Selectタグ内のOption要素をtextとvalueを組とした2次元配列で取得するモノです。

function get_selectTagOptions($ie, $selectElement){
    $ret = @()
    foreach($cn in $selectElement.childNodes){
        if( $cn.tagName -eq "option"){
            $text = $cn.innerText
            $value = $cn.value
            $ret += ,@($text, $value)
        }
    }
    return $ret
}

ここで、二次元配列にデータを格納しているのは赤文字の行ですが、

$ret += ,@($text, $value)

このカンマDAYO!!!!
このカンマが必要だと言うことに気付かなくって悩んでいたのでした。このカンマがないとただの1次元配列にしかならないのです。

これに気付いた時には思わず「おおっ!なるほど!」と思いましたが、とはいえなんか気持ち悪い文法ですねぇこれ。

こちら(http://wiki.livedoor.jp/ilkvm/d/PowerShell)を読んでこれに気付きました。感謝です。

コメントを残す