Lazy Diary @ Hatena Blog

PowerShell / Java / miscellaneous things about software development, Tips & Gochas. CC BY-SA 4.0/Apache License 2.0

PowerShellでHashSetのForEachメソッドを使う

$map = New-Object System.Collections.Generic.HashSet[string];
$map.Add("ABC") > $null
$map | Get-Member

とすると出てこないが、PowerShell ISEなどでオートコンプリートを使うとHashSetForEach()というメソッドが生えていることが分かる。

このForEachメソッドにはLambda式を渡すのだが、たとえば $map.ForEach({ param($x) $x }) としても何も表示されない。

実際には自動変数$_ を使って $map.ForEach({$_}) のようにする必要がある。