我有一個散列表,它的值是int和string(有時是字符串數組)對象的混合值。我想將它們都轉換爲字符串,但我不知道一個簡單的方法來做到這一點,而不需要「重建」哈希表,將每個值轉換爲字符串。有沒有更容易,更有效的方式來做到這一點,而無需循環的值?原地轉換Hashtable值
這是一個簡單的例子。這是我將要轉換的哈希:
PS C:\Users\me> $test | Select -ExpandProperty Values | % { $_.GetType() }
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True String System.Object
True True String System.Object
True True String System.Object
True True Int32 System.ValueType
True True Int32 System.ValueType
True True Int32 System.ValueType
要這樣:
PS C:\Users\gross> $new_test | Select -ExpandProperty Values | % { $_.GetType() }
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True String System.Object
True True String System.Object
True True String System.Object
True True String System.Object
True True String System.Object
True True String System.Object
我想類似的東西,得到了'同時通過集合枚舉時出現錯誤:集合已修改;枚舉操作可能不會執行。「,因此我的答案。我錯過了什麼? – briantist
您需要展開子表達式中的鍵以從改變散列表中解耦。 –
啊,明白了。我最終以迂迴的方式創建了一個新陣列。子表達式更清晰。 – briantist