我试图在PowerShell中创建一个具有重复键和唯一值的Map。我知道hashmap不起作用,有没有其他方法可以为这个重复的键创建一个Map。
$hashTables = @{} $hashTables["$Identity_id"] = "$access"
字符串这里,变量$Identity_id将有重复项。
$Identity_id
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,其中包含所有具有“重复”键的条目……
1条答案
按热度按时间vuv7lop31#
你可能需要提供一个更清楚的例子来说明你所说的“重复键”和“唯一值”是什么意思,但是这里有一个方法来做一些听起来像你所要求的事情。
不要试图在哈希表中存储重复的键(无论如何都不能这样做),而是将每个键的 * 值 * 存储为集合,并将重复项添加到集合中-例如。
字符串
这基本上是一个一对多的Map--每个“值”都是一个ArrayList,其中包含所有具有“重复”键的条目……