Ste*_*hev 0 powershell powershell-4.0
我有一个PowerShell ArrayList($displayObjects),其中包含:
Name ID Tags
---- -- ----
Test1 123 {@{id=4567; name=test1;}}
Test2 345 {@{id=4567; name=test1;}, @{id=6789; name=test2}}
Test3 567 {@{id=4567; name=test1;}, @{id=6789; name=test2}, @{id=7890; name=test3}}
而另一个:
$filter = @('test1', 'test2')
Run Code Online (Sandbox Code Playgroud)
并根据数组中指定的值过滤$displayObjects(Tags.name)$filter.
因此在上面的情况下,结果应该只包含第2行和第3行(来自$displayObjects).
我已经坚持思考和测试$displayObjects | Where-Object ...但却想不出如何在那里循环.有什么建议?
像这样的东西可能会起作用:
... | Where-Object {
$a = @($_.Tags.name)
($filter | Where-Object {$a -contains $_}).Count -eq $filter.Count
}
Run Code Online (Sandbox Code Playgroud)
使用LINQ可能有一种更有效的方法(像这样吗?),但我不够精通.
| 归档时间: |
|
| 查看次数: |
146 次 |
| 最近记录: |