7

フォーマットされた文字列をコンソールに出力したい。1つの文字列変数と1つの文字列配列変数があります。

私がこれをするとき:

$arr = "aaa","bbb"
"test {0} + {1}" -f "first",$arr

出力は次のとおりです。

test first + System.Object[]

しかし、出力は次のようにする必要があります。

test first + aaa,bbb

または同様の何か...

4

1 に答える 1

14

いくつかのオプション:

  1. ToString()最初に配列に参加するので、デフォルトの実装(クラス名を出力するだけ)に依存しません。

    PS> 'test {0} + {1}' -f 'first',($arr -join ',')
    test first + aaa,bbb
    
  2. 文字列補間を使用します。

    PS> $first = 'first'
    PS> "test $first + $arr"
    test first + aaa bbb
    

    を設定することで使用される区切り文字を変更でき$OFSます。デフォルトではスペースです。

    PS> $OFS = ','
    PS> "test $first + $arr"
    test first + aaa,bbb
    
  3. あなたは同じ結果(についてのメモを含む$OFS)を得ることができます

    PS> 'test {0} + {1}' -f 'first',(''+$arr)
    test first + aaa bbb
    

    これにより、配列も最初に単一の文字列に変換されます。

于 2012-05-16T10:47:29.780 に答える