我有一个哈希表数组,我需要查找是否有元素具有相同的哈希表Name。
我有此HasDuplicate函数返回True或False数组是否包含重复项。
我在这里所做的是,我遍历每个元素,并将Name其添加到另一个数组,然后检查它是否为exists。但是这段代码看起来并不好,我在想是否还有另一种方法可以实现这一目标
# object looks like this
$array = @(
@{ Name = 'First', Passed = $True }
@{ Name = 'First', Passed = $False }
)
Function HasDuplicate
{
param($array)
$all = @()
foreach($item in $array)
{
$item_name = $item.Name
if($all -contains $item_name)
{
Write-Error "Duplicate name ""$item_name"""
return $True
}
else
{
$all += $item_name
}
}
return $False
}
Run Code Online (Sandbox Code Playgroud)
组对象可能是最简单的方法,如下所示:
$array = @(
@{ Name = 'First'; Passed = $True }
@{ Name = 'First'; Passed = $False }
)
$array.Name | Group-Object | Where-Object Count -GT 1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
48 次 |
| 最近记录: |