PowerShell: 連想配列の要素の削除とクリア
PowerShellの連想配列(ハッシュテーブル)の特定要素を削除する場合は Removeメソッドを使い、 すべての要素を削除する場合はClearメソッドを使います。 ぞれぞれを順番に解説していきます。
特定の要素を削除する Remove
書式
連想配列.Remove(キー)
Removeメソッドは連想配列から指定したキーの要素を削除します。 一度に指定できるキーは1つだけです。 2つ以上のキーを指定するとエラーになります。
次のサンプルコードでは、 3つの要素を持つ連想配列からキー"b"を削除しています。
$h = @{ a = 100 b = 200 c = 300 } $h.Remove("b") $h # 実行結果 Name Value ---- ----- c 300 a 100
存在しないキーを指定した場合、 エラーにはならずに何も変化がありません。 下のコードでは存在しないキー"e"を指定していますが、 特に何も起こりません。
$h = @{ a = 100 b = 200 c = 300 } # 削除 $h.Remove("e") $h # 実行結果 Name Value ---- ----- c 300 b 200 a 100
すべての要素を削除する Clear
書式
連想配列.Clear()
Clearメソッドは連想配列のすべての要素を削除します。
次のコードではClearメソッドを使ってクリアした後、 Countプロパティで要素数が0になっていることを確認しています。 さらにGetTyptメソッドで$hがハッシュテーブル(連想配列)で あることも確認しています。
$h = @{ a = 100 b = 200 } # クリア $h.Clear() $h.Count # 0 $h.GetType().Name # Hashtable
連想配列をクリアする場合、他の方法もあります。 空の連想配列を作成する際に使用する @{} を使うと、 クリアするのと同じ効果が得られます。 ただし、@{} よりもClearメソッドを使った方が 可読性の高いコードになります。
次のコードは @{} を使って連想配列をクリアしています。
$h = @{ a = 100 b = 200 } # クリア $h = @{} $h.Count # 0 $h.GetType().Name # Hashtable