插入带位置的有序哈希表
Posted
技术标签:
【中文标题】插入带位置的有序哈希表【英文标题】:Inserting into Ordered HashTable with Position 【发布时间】:2021-10-02 16:25:34 【问题描述】:在 PowerShell 中,我有一个包含多个键和值的有序哈希表。根据代码,我向哈希表添加了一个值,但 PowerShell 将添加的键和值附加到列表的末尾。
例如,我的起始哈希表如下所示:
$Hashtable = [ordered]@
A = 'a'
B = 'b'
C = 'c'
X = 'x'
Y = 'y'
Z = 'z'
现在,假设我想在C = c
下方插入一个具有D = d
的密钥。如果您运行 $Hashtable.add('D') = 'd'
,则 PowerShell 会将其附加到列表底部。
是否有一个特定的哈希表命令可以让我在列表中准确指定 add 应该放置的位置?
【问题讨论】:
【参考方案1】:PowerShell 的有序hashtables 是.NET 类型System.Collections.Specialized.OrderedDictionary
,因此您可以使用后者的.Insert()
method,它允许您指定(基于0
)的目标索引插入:
$Hashtable = [ordered]@
A = 'a'
B = 'b'
C = 'c'
X = 'x'
Y = 'y'
Z = 'z'
$Hashtable.Insert(3, 'D', 'd')
之后输出$Hashtable
会产生以下结果,表明新的D
条目插入在现有C
条目之后(从技术上讲,插入到X
条目先前占据的位置):
Name Value
---- -----
A a
B b
C c
D d # <- inserted entry, index 3 (4th pos.)
X x
Y y
Z z
【讨论】:
以上是关于插入带位置的有序哈希表的主要内容,如果未能解决你的问题,请参考以下文章