插入带位置的有序哈希表

问题描述

在 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