在 PowerShell v2 中,我尝试仅向数组添加唯一值。我试过使用一个 if 语句,粗略地说,如果(-not $Array -contains 'SomeValue'),然后添加值,但这只会在第一次工作。我放了一个简单的代码片段,显示了我在做什么但不起作用,以及我做了什么作为一种有效的解决方法。有人可以让我知道我的问题在哪里吗?
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)
第一种方法的结果是一个只包含一个值的数组:“Hello”。第二个方法包含两个值:“Hello”和“World”。任何帮助是极大的赞赏。