我想要做的是動態創建數組變量名稱,然後用循環,基於哈希表值相等將該對象添加到其相關數組計數器變量。創建動態變量數組名稱,然後將對象添加到它們
$hshSite = @{} # Values like this CO,1 NE,2 IA,3
$counter = $hshSite.count
For($i = $counter; $i -gt 0; $i--) {
New-Variable -Name "arr$i" -Value @()
}
如果$計數= 3,我想創建數組$ ARR1,$ ARR2,$ ARR3
$csv = Import-CSV....
ForEach ($x in $csv) {
#if $hshSite.Name = $x.location (ie CO), look up hash value (1),
and add the object to $arr1. If $hshSite.Name = NE, add to $arr2
我試圖創建與新變量的動態數組,但有嘗試添加到問題那些陣列。是否可以將2個變量名稱連接成單個變量名稱?因此,以$ arr + $ i形成$ arr1和$ arr2和$ arr3,然後我基本上可以做$ arr0 + = $ _
最終目標是根據CO,NE,IA進一步分類/分組/處理。我願意接受其他想法來實現這一目標。謝謝你的幫助!
太棒了!是的,CSV確實有很多記錄。你能簡單地解釋一下使用數組列表而不是數組的好處嗎?再次感謝你的幫助!!! – cluckinchicken
這是與內部處理數組有關的性能問題。你不能真的添加到數組中。 + =操作所做的是創建一個由原始數組的元素和新元素組成的全新數組。這會產生很多過程開銷。數組列表不會這樣做,因此每個操作只需幾個ms。只要只有幾個條目,性能差異就很小,不值得放棄陣列方法提供的更簡單更有效的編碼。當你開始做很多事情時,差異會變得很大。 – mjolinor