PowerShell v2 では、一意の値のみを配列に追加しようとしています。大まかに言うと、If (-not $Array -contains 'SomeValue') という if ステートメントを使用してみましたが、値を追加しましたが、これは初めてしか機能しません。私がやっていることがうまくいかないことと、うまくいく回避策として私がやったことを示す簡単なコードスニペットを入れました。誰かが私の問題がどこにあるのか教えてもらえますか?
Clear-Host
$Words = @('Hello', 'World', 'Hello')
# This will not work
$IncorrectArray = @()
ForEach ($Word in $Words)
{
If (-not $IncorrectArray -contains $Word)
{
$IncorrectArray += $Word
}
}
Write-Host ('IncorrectArray Count: ' + $IncorrectArray.Length)
# This works as expected
$CorrectArray = @()
ForEach ($Word in $Words)
{
If ($CorrectArray -contains $Word)
{
}
Else
{
$CorrectArray += $Word
}
}
Write-Host ('CorrectArray Count: ' + $CorrectArray.Length)
最初のメソッドの Result は、「Hello」という値を 1 つだけ含む配列です。2 番目のメソッドには、"Hello" と "World" の 2 つの値が含まれています。どんな助けでも大歓迎です。