如何解决Powershell字典的排序和迭代
我已经填充了如下所示的powershell字典。
$test=New-Object System.Collections.Generic.Dictionary"[String,String]"
$test.Add("1.0.0.0","A");
$test.Add("2.0.0.0","A");
$test.Add("1.1.0.0","B");
$test.Add("1.1.1.0","C");
$test.Add("1.2.0.0","B");
$test.Add("2.1.0.0","B");
$test.Add("1.1.2.0","C");
当我在PowerGui编辑器中调试代码时,我可以看到如下所示的$ test值
我想根据Keys对字典进行排序。因此,输出结果应该如下所示。
{[1.0.0.0,A],[1.1.0.0,B],[1.1.1.0,C],[1.1.2.0,[1.2.0.0,[2.0.0.0,[2.1.0.0,B]}
因此,为了在键的基础上执行排序,还为了遍历排序的字典,我使用了以下代码。但是不幸的是,排序和循环都不适合我。
$test=$test.GetEnumerator() | sort -Property Keys
while ($test.MoveNext())
{
Write-Host $test.Key + " --> "
+ $test.Value
}
执行GetEnumerator之后的结果字典如下。
SO basically i have two requirement.
1.)Sort the dictionary on the base of keys
2.)Loop through the sorted dictionary
解决方法
只需将排序后的字典传送到ForEach-Object
:
$test.getEnumerator() | Sort-Object -property key | ForEach-Object { "[{0},{1}]" -f ($_.key,$_.value)}
如果要使用[Ordered]
对象或SortedDictionary
确保变量在变量中保持排序,请参见this answer
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。