分かりやすく、使いやすく。

連想配列(ハッシュ)に指定した値が含まれるかを確認する方法

スポンサーリンク

PowerShell で連想配列(ハッシュ)に値が存在するかを確認するには ContainsValue を使用します。

サンプルコードは次の通りです。

PowerShell(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 連想配列(ハッシュ)を作成する。
$my_hash = @{
    'Key1' = 'Val1';
    'Key2' = 'Val2';
    'Key3' = 'Val3';
};
 
# 以下はいずれも True を返す。
Write-Host $my_hash.ContainsValue('Val1'); 
Write-Host $my_hash.ContainsValue('Val2'); 
Write-Host $my_hash.ContainsValue('Val3');
 
# False を返す。
Write-Host $my_hash.ContainsValue('Val4');
 
# False を返す。(値には含むがキーには含まない為。)
Write-Host $my_hash.ContainsValue('Key1');  

サンプルコードの実行結果は次の通りです。

True
True
True
False
False 

Remove でキーを指定して要素を削除した場合、そのキーが保持していた値を指定すると False になります。

PowerShell(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 連想配列(ハッシュ)を作成する。
$my_hash = @{
    'Key1' = 'Val1';
    'Key2' = 'Val2';
    'Key3' = 'Val3';
};
 
# キーが 'Key2' の要素を削除。
$my_hash.Remove('Key2');
 
# Val2 は削除されているので False を返す。
Write-Host $my_hash.ContainsValue('Val1'); # True
Write-Host $my_hash.ContainsValue('Val2'); # False
Write-Host $my_hash.ContainsValue('Val3'); # True 
True
False
True 

値ではなくキーを検索したい場合は連想配列(ハッシュ)に指定したキーが含まれるかを確認する方法を参照してください。

スポンサーリンク
スポンサーリンク