PowerShell - 搜索 HashTable 列表并根据键过滤它们

问题描述

在 Python 中,您可以使用过滤器函数执行列表理解之类的操作,以处理字典列表并找到您想要的:

warranty_info = [warranty for warranty in warranty_info if
                                 args.warranty_keyword.lower() in warranty['ServiceLevelDescription'].lower()]

warranty_info 是字典列表,ServiceLevelDescription 是我要过滤的字段。结果是一个新的字典列表,其中只有我想要的字典。在本例中,我要查找在 warranty_keyword 字段中包含用户提供的单词 (ServiceLevelDescription) 的所有词典。

我知道如何使用 foreach 循环在 PowerShell 中完成此操作 - 是否有像 Python 那样“更干净”的方法

解决方法

我想通了 - 它实际上比 Python 更优雅(Grant 的意见):

$WarrantyInfo | Where-Object 'ServiceLevelDescription' -Match ^*pro*

语法中有很多隐含的内容。这将搜索 HashTables 列表,并为每个人提取键 ServiceLevelDescription - 之后它将检查是否与您在 -Match 开关后放置的任何内容匹配。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...