如何从对象数组中获取单个属性值?

Sim*_*wsi 1 powershell powershell-4.0

我有一个对象数组:

$list = @( `
                @{title='First';guid='0118B390-3AF5-406E-920D-FE140392584D'}, `
                @{title='Second';guid='2C78DA61-B6EF-4E4E-8FF8-4A95D75C8188'}, `
                @{title='Third';guid='0EDC361C-862E-41FC-8A60-870CADC17EC5'} `
            )
Run Code Online (Sandbox Code Playgroud)

我想使用guid查找并返回标题.我想要的只是值,我不想返回一个对象.例如,如果查找guid'2C78DA61-B6EF-4E4E-8FF8-4A95D75C8188',我只想返回一个字符串值'Second',而不是一个具有值为'Second'的属性的对象.

我怎样才能做到这一点?

我尝试过以下方法:

$list | where guid -eq '2C78DA61-B6EF-4E4E-8FF8-4A95D75C8188'
Run Code Online (Sandbox Code Playgroud)

它返回一个哈希表

和

$list | where guid -eq '2C78DA61-B6EF-4E4E-8FF8-4A95D75C8188' | select {$_.title}
Run Code Online (Sandbox Code Playgroud)

返回带有{$_.title}NoteProperty 的PSObject .

以下两个尝试工作:

($list | where guid -eq '2C78DA61-B6EF-4E4E-8FF8-4A95D75C8188' `
    | select {$_.title}).{$_.title}

($list | where guid -eq '2C78DA61-B6EF-4E4E-8FF8-4A95D75C8188' `
    | select @{Name="result";Expression={$_.title}}).result
Run Code Online (Sandbox Code Playgroud)

但是,它们都很难看.有没有更好的方法来回报价值?

Loï*_*HEL 5

另外一个选项

($list |?{ $_.guid -eq '0EDC361C-862E-41FC-8A60-870CADC17EC5'}).title
Run Code Online (Sandbox Code Playgroud)