在枚举器中更新哈希表并让它识别添加?

时间:2012-08-09 14:27:43

标签: powershell

处理在哈希表的枚举中添加哈希表的最佳方法是什么,以便它在枚举中包含添加的项?

我讨厌一些东西:         foreach($ groups中的$ key.GetEnumerator()| Sort-Object Name -descending){                if(something){                    groups.add( “测试”, “TEST2”)                }         }

我希望它在枚举中使用新添加的项目,而不是一遍又一遍地调用包含它的函数,这会破坏我的内存资源并解决影响export-csv调用的问题。

1 个答案:

答案 0 :(得分:0)

我认为当你使用foreach更新散列时,powershell会抛出一个错误。

将哈希的密钥写入数组:

$stack = @($groups.keys)

然后从该列表中“移开”一个键以使其工作:

while ($stack) {
  $item,$stack = $stack
  DoStuffHere()
}

最后,在DoStuffHere中,您需要将一个项目添加到HASH 将新密钥推送到堆栈,以便它能够正常工作。

 $groups.add($newkey,$newval)
 $stack = $stack,$newkey

这样,您就不必担心PowerShell的自动行为无法按照您想要的方式运行。