【问题标题】:Preserving hashtable order [duplicate]保留哈希表顺序[​​重复]
【发布时间】:2017-03-17 01:40:53
【问题描述】:

假设我有这个脚本:

$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


    【解决方案1】:

    需要 PowerShell 3,但您可以使用 [ordered] 加速器来保持秩序。

    $data= [ordered]@{
        A = 1
        C = 2
        B = 3
    }
    

    【讨论】:

    • 正是我想要的。谢谢。
    猜你喜欢
    • 2010-12-26
    • 2014-09-22
    • 2015-05-10
    • 2014-02-01
    • 2014-04-18
    • 1970-01-01
    • 1970-01-01
    • 2014-05-29
    • 2013-01-31
    相关资源
    最近更新 更多