问题描述
在 PowerShell 中,我有一个包含多个键和值的有序哈希表。根据代码,我向哈希表添加了一个值,但 PowerShell 将添加的键和值附加到列表的末尾。
例如,我的起始哈希表如下所示:
$Hashtable = [ordered]@{
A = 'a'
B = 'b'
C = 'c'
X = 'x'
Y = 'y'
Z = 'z'
}
现在,假设我想插入一个在 D = d
下方具有 C = c
的键。如果您运行 $Hashtable.add('D') = 'd'
,则 PowerShell 会将其附加到列表底部。
是否有特定的哈希表命令可以让我在列表中准确指定 add 应放置的位置?
解决方法
PowerShell 的有序 hashtables 属于 .NET 类型 System.Collections.Specialized.OrderedDictionary
,因此您可以使用后者的 .Insert()
method,它允许您指定 ({{1 }}-based) 插入的目标索引:
0
之后输出 $Hashtable = [ordered]@{
A = 'a'
B = 'b'
C = 'c'
X = 'x'
Y = 'y'
Z = 'z'
}
$Hashtable.Insert(3,'D','d')
会产生以下结果,表明新的 $Hashtable
条目插入到现有的 D
条目之后(技术上,插入到先前由 {{1} } 条目):
C