脚本如下:
$data= @{
A = 1
C = 2
B = 3
}
foreach($key in $data.Keys){
$item = $data[$key]
Write-Host "$($key) : $($item)"
}
输出为:
C : 2
B : 3
A : 1
可以看到,输出的顺序与输入的顺序不同。
有什么方法可以保持我字典中的顺序吗?
我的实际需求是按照字典中提供的的顺序执行一组命令。
作为旁注,我可以使用:
$data= @(
@{ Name="A"; Value=1 }
@{ Name="C"; Value=2 }
@{ Name="B"; Value=3 }
)
foreach($item in $data){
Write-Host "$($item.Name) : $($item.Value)"
}
但是语法有点复杂
需要PowerShell 3,但您可以使用[ordered]
加速器来保持有序
$data= [ordered]@{
A = 1
C = 2
B = 3
}