我们说我有这样的哈希:
$NATO = @{
"A" = "Alpha";
"B" = "Bravo";
"C" = "Charlie";
# ...
"Y" = "Yankee";
"Z" = "Zulu";
}
我可以使用$NATO.keys
密钥集合获取所有哈希值:
$NATO[$NATO.keys] # gives me all values
但是,如果我想传递密钥子集,以获取值的子集,我就不能这样做:
$NATO["BUNYK".ToCharArray()] # gives me nothing, but I want
# Bravo, Uniform, November, Yankee, Kilo
你知道怎么做吗?
答案 0 :(得分:2)
您还可以将字符串数组传递到ForEach-Object
循环:
[string[]]'BUNYK'.ToCharArray() | % { $NATO[$_] }
答案 1 :(得分:1)
哈希表将键存储为对象,不一定是简单的字符串。示例中的键是字符串,但您尝试将它们作为[char]对象进行访问。处理示例的最简单方法是将[char []]数组转换为[string []]数组:
$NATO[([string[]] "BUNYK".ToCharArray())]