0

列挙にその追加された項目が含まれるように、そのハッシュテーブルの列挙内でハッシュテーブルへの追加を処理する最良の方法は何ですか?

私は何かlkeを持っています: foreach ($key in $groups.GetEnumerator() | Sort-Object Name -descending) { if (something) { groups.add("test","test2") } }

これを含む関数を何度も呼び出すのではなく、列挙に新しく追加された項目を使用して、メモリ リソースを消費し、export-csv 呼び出しに書き出されたものに影響を与える問題を引き起こします。

4

1 に答える 1

0

foreachで歩いているハッシュを更新すると、PowerShellがエラーをスローすると思います。

ハッシュのキーを配列に書き込みます。

$stack = @($groups.keys)

次に、そのリストからキーを「シフト」して機能させます。

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

そして最後に、DoStuffHereで、アイテムをHASHに追加し、新しいキーをスタックにプッシュして、機能するようにする必要があります。

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

このように、PowerShellの自動動作が希望どおりに機能しないことを心配する必要はありません。

于 2012-08-09T15:27:33.573 に答える