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
PowerShell