确定 PSCustomObject 数组是否包含具有 属性 值的实例

Determine if an array of PSCustomObject's contains an instance with a property value

我需要确定 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 returns 匹配实例,但不是布尔值:

PS> $Items -match 'foo'

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

我想我可以:

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

还有更好的选择吗?

使用:

$Items.Title -contains 'foo'