假设我有这个剧本:
$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)"
}
但语法有点复杂
答案 0 :(得分:7)
需要PowerShell 3,但您可以使用[ordered]
加速器来保持秩序。
$data= [ordered]@{
A = 1
C = 2
B = 3
}