gpt4 book ai didi

powershell - 如何查询哈希表的嵌套属性?

转载 作者:行者123 更新时间:2023-12-04 08:20:45 24 4
gpt4 key购买 nike

假设你有一个 Hashtable像这样:

$ht = @{
Foo = @{
Bar = "Baz"
Qux = "Quux"
}
Quuz = @{
Bar = "Corge"
Qux = "Grault"
}
}
想象一下,你想得到一个包含 Hashtable 的数组。的 Bar属性(property)。你会怎么做?这可能不迭代吗?
这就是我想出的:
$arr = @()

foreach ($i in $ht.GetEnumerator()) {
foreach ($n in $i.Name) {
$arr += $ht.$n.Bar
}
}
PS C:> echo $arr
Corge
Baz
不过,实际上,在我看来它应该更简单。也许使用 PSCustomObject & Select-Object ?我愿意接受任何解决方案。

最佳答案

PowerShell(从 3.0 版开始)支持成员枚举,允许我们将循环简化为以下语句:

$arr = $ht.Values.Bar
由于集合存储在 Hashtable.Values没有 Bar属性,PowerShell 将枚举它并尝试针对各个项目解析成员引用,就像您已经完成的那样:
$ht.Values |ForEach-Object { $_.Bar } 
# or
$ht.Values |ForEach-Object Bar
# or
$ht.Values |Select -Expand Bar

关于powershell - 如何查询哈希表的嵌套属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65506970/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com