icon

PowerShellでHashSetをいくつかの要素を入れて初期化したくて、

New-Object HashSet[string] "1" "2" "3"
New-Object HashSet[string] "1", "2", "3"
New-Object HashSet[string] ("1", "2", "3")
New-Object HashSet[string] @("1", "2", "3")
New-Object HashSet[string] (@("1", "2", "3"))
New-Object HashSet[string] -ArgumentList @("1", "2", "3")
[HashSet[string]]::new("1", "2", "3")
[HashSet[string]]::new(@("1", "2", "3"))
[HashSet[string]]::new([string[]] @("1", "2", "3"))

でようやく正解にたどり着いた。やっぱこのへんの文法や型の扱いはC#に比べると微妙よな

icon

string[] へのキャストが必要な理由は、HashSet<string> のコンストラクタが受け取るのがIEnumerable<string> なのに対して、PowerShellで普通に配列を書いただけだとobject[] になってしまうから。まあPowerShellでコレクションを型付けしても大して意味はなくて、HashSet[object] にしてしまえばキャストはいらないんだけどね

icon

強撃ビンのスラアクは覚醒が遅すぎてやっぱり使いづらさが目立つな。一度のダウンで覚醒させて大技撃つまで至らないのは厳しい