2010-02-04 31 views

Respuesta

20

En el ejemplo anterior, sólo debe ser capaz de hacer:

$list = ,"aa" + $list 

que simplemente agregar el prefijo "AA" a la lista y lo convierten en el elemento 0 ª. Verificar obteniendo $list[0].

+0

Técnicamente, esto combina dos matrices. La matriz es de tamaño fijo, por lo que no es posible un antepecho puro. –

11

Usando += y + en matrices en PowerShell está haciendo una copia de la matriz cada vez que lo utilice. Eso está bien, a menos que la lista/matriz sea realmente grande. En ese caso, considerar el uso de una lista genérica:

C:\> $list = new-object 'System.Collections.Generic.List[string]' 
C:\> $list.Add('a') 
C:\> $list.Add('b') 
C:\> $list.Insert(0,'aa') 
C:\> $list 
aa 
a 
b 

Tenga en cuenta que en este escenario es necesario utilizar los métodos Add/Insert. Si recurre al uso de +=, copiará la lista genérica a object[].

+0

Tenga en cuenta que su primera lista de $ devolverá una matriz de 2 elementos. El primer elemento es 'aa', y el segundo elemento es una lista anidada de 2 elementos, 'a' y 'b' – Nestor

+0

Doh! OK, quitó esa parte. –

2

Esto combina dos arreglos en uno.

$list = @("aa") + $list 

Es imposible hacer una prepending pura en una matriz de PowerShell, porque las matrices de PowerShell son de longitud fija. Combinar dos arreglos en uno es un buen enfoque.

+0

Awesome gracias :) –

Cuestiones relacionadas