Como criar um ArrayList de um Array em PowerShell?
ArrayList
.
Mas o seguinte não funciona para mim:
$temp = Get-ResourceFiles
$resourceFiles = New-Object System.Collections.ArrayList($temp)
Onde $temp
é uma matriz.
2 answers
# $temp = Get-ResourceFiles
$resourceFiles = New-Object System.Collections.ArrayList($null)
$resourceFiles.AddRange($temp)
Você também pode passar um inteiro no construtor para definir uma capacidade inicial.
O que queres dizer quando dizes que queres enumerar os ficheiros? Porque não filtras os valores desejados numa nova matriz?Editar:
Parece que você pode usar o construtor do array assim:
$resourceFiles = New-Object System.Collections.ArrayList(,$someArray)
Repara na vírgula. Eu acredito que o que está acontecendo é que quando você chame um método. NET, você sempre passa parâmetros como um array. PowerShell desemboca esse array e passa-o para o método como parâmetros separados. Neste caso, não queremos que o PowerShell desfaça o array; queremos passar o array como uma única unidade. Agora, o operador de vírgula cria arrays. Então o PowerShell desfaz o array, então nós criamos o array novamente com o operador de vírgula. Penso que é isso que está a acontecer.
Provavelmente a versão mais Curta:
[System.Collections.ArrayList]$someArray
Também é mais rápido porque não chama relativamente caro New-Object
.