确定PSCustomObject数组是否包含属性值为

时间:2015-06-19 13:37:53

标签: powershell powershell-v3.0 pester

我需要确定PSCustomObject的数组是否包含其Title属性与值匹配的项。我需要一个布尔值来与Pester断言一起使用:

$Items -<function> $Name | Should Be $True

假设:

$Items = @()
$Items += [PsCustomObject]@{Title='foo';Url='http://f.io'}
$Items += [PsCustomObject]@{Title='bar';Url='http://b.io'}

Contains不起作用:

PS> $Items -contains 'foo'
False

Match返回匹配的实例,但它不是布尔值:

PS> $Items -match 'foo'

Title  Url
-----  ---
foo    http://f.io

我想我可以:

($Items -Match $Name).Count | Should Be 1

有更好的选择吗?

1 个答案:

答案 0 :(得分:15)

使用:

$Items.Title -contains 'foo'