gpt4 book ai didi

Powershell,添加项目以散列表

转载 作者:行者123 更新时间:2023-12-05 09:31:20 25 4
gpt4 key购买 nike

我有以下示例脚本

$aDomains = @{}

$aDomains['a-test.nl'] = @{}
$aDomains['b-test.nl'] = @{}
$aDomains['c-test.nl'] = @{}
$aDomains['d-test.nl'] = @{}
$aDomains['e-test.nl'] = @{}

$aDomains

这看起来很简单,但是如果我运行这个脚本,输出会非常出乎意料:

$aDomains


Name Value
---- -----
e-test.nl {}
d-test.nl {}
b-test.nl {}
a-test.nl {}
c-test.nl {}

如何使输出与添加项的顺序相匹配?由于脚本中接下来发生的事情,我确实需要在所有实例上使用 @{}。

此外,在脚本中添加这个根本没有效果:

$aDomains = $aDomains | Sort-Object

最佳答案

如您所见,默认情况下哈希表是无序的。从 PowerShell 3.0 开始,您可以对哈希表进行排序,在这种情况下它将保持顺序。

看下面的例子:

$aDomains = [ordered] @{}

$aDomains['e-test.nl'] = @{}
$aDomains['a-test.nl'] = @{}
$aDomains['b-test.nl'] = @{}
$aDomains['c-test.nl'] = @{}
$aDomains['d-test.nl'] = @{}
$aDomains['e-test.nl'] = @{}

$aDomains

Name Value
---- -----
e-test.nl {}
a-test.nl {}
b-test.nl {}
c-test.nl {}
d-test.nl {}

如您所见,e-test.nl 在列表中出现了两次,但只在顶部添加了一次,因此它确实符合添加的顺序,不会添加两次。要使其正常工作,请将 [ordered] 标记添加到哈希表分配的开头。

虽然侧节点很小。如果使用.ContainsKey()函数,需要将这里改为.Contains()

关于Powershell,添加项目以散列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68858434/

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