在 Powershell 中测试集合中的所有元素以获取相同的属性值



有没有更简洁/惯用的方法来完成以下工作?我对逻辑中的双重否定印象不深。

例如,对于集合中的所有项目,IsPass true

$data = ,@{'IsPass' = $true}, @{'IsPass' = $true}, @{'IsPass' = $true}
if(!$data.IsPass.Contains($false))
{
   Write-Host 'foo'
}

你的方法到底有什么问题?我可以想到这样的事情:

$data = @{'IsPass' = $true}, @{'IsPass' = $true}, @{'IsPass' = $true}
foreach ($item in $data)
{
    if ($item['IsPass'] -ne $true)
    {
        Write-Host 'foo'
    }
}

或者这个:

$data = @{'IsPass' = $true}, @{'IsPass' = $false}, @{'IsPass' = $true}
$data.IsPass | Where-Object {$_ -ne $true}

最新更新