我有一个名为 的 PowerShell 对象数组$releases。发布包含 ID、名称以及与该发布关联的项目的可选对象数组。每个项目都有一个 ID 和 Name 属性。一个例子如下所示。
id : 1
name : Release 5
associated_projects : {@{id=50; name=Project 1}}
id : 2
name : Release 6
associated_projects : {@{id=51; name=Project 2}}
id : 3
name : Release 7
Run Code Online (Sandbox Code Playgroud)
我想过滤结果,以便只返回那些与特定关联项目 ID 相关联的项目的版本。例如,如果我的关联项目 ID 为 50,我将从上面的示例中返回版本 1。
我最初的方法是简单地使用嵌套的 for-each 迭代版本来查找关联项目的 id。找到后,将版本添加到另一个数组并返回结果。然而,似乎有一种更合适的方法可以在 PowerShell 中使用Where-Object 来处理这个问题。然而,我尝试根据原始父对象上的数组中对象的属性值过滤此集合失败了。
是否有更好的方法来过滤此内容,这对 PowerShell 来说更惯用?
像这样的东西吗?
PS> $releases | ?{ $_.associated_projects -ne $null }
Name Value
---- -----
associated_projects {id, name}
name Release 5
id 1
associated_projects {id, name}
name Release 6
id 2
Run Code Online (Sandbox Code Playgroud)
associated_projects这会过滤掉键不是 的对象$null。
| 归档时间: |
|
| 查看次数: |
12000 次 |
| 最近记录: |