【发布时间】:2021-10-17 08:49:44
【问题描述】:
我正在尝试找到一种方法来比较 2 个哈希表数组,以查看某些属性是否匹配。
如果有匹配,我需要某个值发生,如果没有匹配,则需要执行其他操作。
理论上嵌套循环应该可以完成这项工作,但我必须弄清楚哪个数组更长。
代码示例如下:
$hashtable1 = @{}
$hashtable1.name = "xxx"
$hashtable1.surname =@()
$hashtable1.surname += "bbb"
$hashtable2 = @{}
$hashtable2.name = "aaa"
$hashtable2.surname =@()
$hashtable2.surname += "ccc"
$hashtable3 = @{}
$hashtable3.name = "bbb"
$hashtable3.surname = @()
$hashtable3.surname += "xxx"
$A = @($hashtable1; $hashtable2; $hashtable3)
$hashtable4 = @{}
$hashtable4.name = "yyy"
$hashtable4.surname =@()
$hashtable4.surname += "bbb"
$hashtable5 = @{}
$hashtable5.name = "xxx"
$hashtable5.surname = @()
$hashtable5.surname += "ccc"
$hashtable6 = @{}
$hashtable6.name = "ddd"
$hashtable6.surname = @()
$hashtable6.surname += "xxx"
$hashtable7 = @{}
$hashtable7.name = "ddd"
$hashtable7.surname = @()
$hashtable7.surname += "xxx"
$Array1 = @($hashtable1; $hashtable2; $hashtable3)
$Array2 = @($hashtable4; $hashtable5; $hashtable6; $hashtable7)
在这种情况下,我需要找出:hashtable1.name 与 hashtable5.name 相同,然后采取某些措施。
我想知道是否有更好的方法。
请注意,我昨天在这里问了一个类似的问题:
Powershell Compare 2 Arrays of Hashtables based on a property value
该解决方案适用于稍微不同的场景,但这次,我真的需要将数组中的哈希表参数相互比较。
我在 Windows 10 上使用 PowerShell 5。
谢谢, 紫菀
【问题讨论】:
标签: arrays powershell nested iteration hashtable