PowerShellコマンドレット虎の巻

配列

PowerShellの配列の使い方です。

解説

PowerShellでは他の言語と同じように配列を使うことができます。
配列は要素を動的に変更できないため、要素の追加や削除を行いたい場合はListの使用をおすすめします。

構文

(構文:1次元配列)
$array = @(要素1, 要素2, 要素3, ...)
(構文:2次元配列)
$array = @( @(要素1, 要素2, 要素3, ...), @(要素1, 要素2, 要素3, ...), @(要素1, 要素2, 要素3, ...) )

配列のメソッド

PowerShellの配列で使用できるメソッドには以下のようなものがあります。

【主要メソッド】
メソッド説明
.Add()配列に新しい要素を追加する
(例)$arr.Add("要素")
.Clear()配列の要素を全て削除する
(例)$arr.Clear()
.Contains()指定した要素が配列に含まれるか判定する
(例)$arr.Contains("検索する要素")
.CopyTo()配列の要素を別の配列にコピーする
(例)$arr1.CopyTo($arr2, 0)
.IndexOf()指定した要素の最初のインデックスを返す
(例)$arr.IndexOf("要素")
.Insert()指定したインデックスに新しい要素を挿入する
(例)$arr.Insert(3, "新要素")
.Remove()指定した要素を配列から削除する
(例)$arr.Remove("要素")
.RemoveAt()指定したインデックスの要素を削除する
(例)$arr.RemoveAt(2)
.Reverse()配列の要素を逆順にする
(例)$arr.Reverse()
.Sort()配列の要素をソートする
(例)$arr.Sort()

サンプル(配列を生成)

1次元配列を生成する

$array = @(1, 2, 3, 4, 5)

省略形として「$array = 1, 2, 3, 4, 5」でもOKです。

2次元配列を生成する

$array2D = @( @(1, 2, 3), @(4, 5, 6), @(7, 8, 9) )

空の配列を生成する

$emptyArray = @()

サンプル(配列から要素を取得)

配列から要素を取得する

$array = @(1, 2, 3, 4, 5) # 1番目の要素を取得する $firstElement = $array[0] # 1 # 末尾の要素を取得する $lastElement = $array[-1] # 5

インデックス番号は0から始まる連番です。

配列から反復処理で要素を取得する

foreach ($item in $array) { Write-Host $item }

ソートして要素を取得する

$sortedArray = $array | Sort-Object

条件を指定して要素を取得する

# 偶数の要素のみを取得する $evenNumbers = $array | Where-Object { $_ % 2 -eq 0 }

2次元配列から要素を取得する

$array2D = @( @(1, 2, 3), @(4, 5, 6), @(7, 8, 9) ) # 2行目、3列目の要素を取得 $element = $array2D[1][2] Write-Host "2行目、3列目の要素: $element" # 出力: 6

サンプル(配列の要素を更新する)

配列を更新する

$array = @(1, 2, 3, 4, 5) $array[2] = 10 # 3番目の要素を10に更新 → 1, 2, 10, 4, 5 $array = @(1, 2, 3, 4, 5) $array = $array | ForEach-Object { $_ * 2 } # 各要素を2倍にする → 2, 4, 6, 8, 10

要素をnullに更新する

$array[2] = $null # 3番目の要素をnullに更新する

要素自体は無くなりません。(3番目の要素はnullとして存在し続けます)

サンプル(配列の要素を追加する)

配列の末尾に要素を追加する

$array = @(1, 2, 3) $array += 4 # 末尾に4を追加

サンプル(配列の要素を削除する)

先頭の要素を削除する

$array = $array[1..($array.Length-1)]

先頭の末尾を削除する

$array = $array[0..($array.Length-2)]

備考

  • 要素のインデックスは0から始まる連番です。(1番目の要素のインデックスは0です。)
  • 配列は固定長なので、要素の削除や追加など要素数が変わる変更を行いたい時は、リストを使うことをお勧めします。
    (上記の削除や追加の例は、新たに配列を作り直して疑似的に実現させているのでパフォーマンスは悪いです)

関連項目