配列・連想配列配列の作成カンマによる簡単な方法PS> $nums = 1,2,3 PS> $nums[1] 2 @(,)による厳密な方法 (空の配列を作る場合など)PS> $texts = @("taro", "jiro", "hanako") PS> $texts[1] jiro PS> $nums = @() # 空の配列 PS> $nums.Count 0 配列の要素の型は不定でよいPS> $data = 123, "ABC", [datetime]"2020-01-01" 配列の中身のダンプPS> $data = 123, "ABC", [datetime]"2020-01-01" PS> $data | ConvertTo-Json [ 123, "ABC", { "value": "\/Date(1577804400000)\/", "DateTime": "2020年1月1日 0:00:00" } ] ConvertTo-JSONを使うと変数の中身がわかりやすい。 配列の追加・削除などpushPS> $nums = 1,2,3 PS> $nums += 4 PS> $nums[3] 4 shiftPS> $nums = 1,2,3 PS> $first, $rest = $nums PS> $first 1 PS> $rest 2 3 削除PS> $nums = 1,2,3 PS> $nums[1] = $null PS> $nums 1 3 挿入PS> [System.Collections.ArrayList]$nums = 1,2,3 PS> $nums.(1,9) PS> $nums 1 9 2 3 多次元配列(ジャグ配列)PS> $data = ("taro", 15), ("jiro", 10) PS> $data[1][1] 10 配列に配列を格納する時はカンマ演算子を使うPS>$a = (1,2),(,3)
PS> $data = (1,2),(3,4) # この時点で$dataはJSONでいう[[1,2], [3,4]] PS> $data += , @(5) # 同様にJSONで[[1,2], [3,4], [5]] PS> $data += @(6) # 先頭にカンマ(,)をつけないと、[[1,2], [3,4], [5], 6]のように値が配列値でなくスカラー値になる PS> $data[2] -is [array] True # $data[2]の値は[5]なのでTrue PS> $data[3] -is [array] False # $data[3]の値は6なのでFalse 多次元配列をパイプで処理するPS> ,(1,2,3) | % { $_.GetType() } IsPublic IsSerial Name BaseType -------- -------- ---- -------- True True Object[] System.Array PS> (1,2,3) | % { $_.GetType() } IsPublic IsSerial Name BaseType -------- -------- ---- -------- True True Int32 System.ValueType True True Int32 System.ValueType True True Int32 System.ValueType
非ジャグ配列な多次元配列PS> $data = New-Object "int32[,]" 2,3 # 2次元配列 PS> $data[0,1] = 100 PS> $data[0,3] = 200 # インデックスが配列の境界外のためエラーになる PS> $data = New-Object "object[,,]" 2,3,4 # 3次元配列
参考 |
|