处理在哈希表的枚举中添加哈希表的最佳方法是什么,以便它在枚举中包含添加的项?
我讨厌一些东西: foreach($ groups中的$ key.GetEnumerator()| Sort-Object Name -descending){ if(something){ groups.add( “测试”, “TEST2”) } }
我希望它在枚举中使用新添加的项目,而不是一遍又一遍地调用包含它的函数,这会破坏我的内存资源并解决影响export-csv调用的问题。
答案 0 :(得分:0)
我认为当你使用foreach更新散列时,powershell会抛出一个错误。
将哈希的密钥写入数组:
$stack = @($groups.keys)
然后从该列表中“移开”一个键以使其工作:
while ($stack) {
$item,$stack = $stack
DoStuffHere()
}
最后,在DoStuffHere中,您需要将一个项目添加到HASH 并将新密钥推送到堆栈,以便它能够正常工作。
$groups.add($newkey,$newval)
$stack = $stack,$newkey
这样,您就不必担心PowerShell的自动行为无法按照您想要的方式运行。