powershell中的重复键

vcirk6k6  于 2023-08-05  发布在  Shell
关注(0)|答案(1)|浏览(131)

我试图在PowerShell中创建一个具有重复键和唯一值的Map。
我知道hashmap不起作用,有没有其他方法可以为这个重复的键创建一个Map。

$hashTables = @{}
$hashTables["$Identity_id"] = "$access"

字符串
这里,变量$Identity_id将有重复项。

vuv7lop3

vuv7lop31#

你可能需要提供一个更清楚的例子来说明你所说的“重复键”和“唯一值”是什么意思,但是这里有一个方法来做一些听起来像你所要求的事情。
不要试图在哈希表中存储重复的键(无论如何都不能这样做),而是将每个键的 * 值 * 存储为集合,并将重复项添加到集合中-例如。

$data = @(
    [pscustomobject] @{ "Name" = "Eric"; "Address" = "1 The Street" },
    [pscustomobject] @{ "Name" = "Bob";  "Address" = "10 The Road" },
    [pscustomobject] @{ "Name" = "Eric"; "Address" = "29 Acacia Avenue" }
)

$map = @{};
$data | foreach-object {
    if( -not $map.Contains($_.Name) )
    {
        $map.Add($_.Name, [System.Collections.ArrayList]::new())
    }
    $map[$_.Name].Add($_.Address)
}

$map
# Name                           Value
# ----                           -----
# Bob                            {10 The Road}
# Eric                           {1 The Street, 29 Acacia Avenue}

字符串
这基本上是一个一对多的Map--每个“值”都是一个ArrayList,其中包含所有具有“重复”键的条目……

相关问题