web-dev-qa-db-ja.com

PSCustomObjectの配列にプロパティ値を持つインスタンスが含まれているかどうかを判別

PSCustomObjectsの配列に、値と一致する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

より良いオプションはありますか?

16
craig

使用する:

$Items.Title -contains 'foo'
25
Eris