Eliminar elemento de una matriz en PowerShell
Una matriz de PowerShell tiene un tamaño fijo y no se puede cambiar. Significa que no puede agregar o eliminar elementos en una matriz.
La mejor alternativa es usar una ArrayList
en lugar de una matriz. Una ArrayList
no tiene la longitud de tamaño fijo y se puede modificar.
Este artículo enseña cómo crear una ArrayList
y eliminar elementos de ella en PowerShell.
Utilice el método Remove()
para eliminar elementos de una ArrayList
en PowerShell
El siguiente ejemplo crea una ArrayList
$days
con los elementos Sunday
, Monday
y Tuesday
.
[System.Collections.ArrayList]$days = "Sunday", "Monday", "Tuesday"
Puede utilizar el método Get-Type()
para ver el tipo de datos actual de una variable.
$days.GetType()
Producción :
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True ArrayList System.Object
El resultado muestra que hemos creado con éxito una ArrayList
. Puede verificar si es un tamaño fijo o no ejecutando el siguiente comando.
$days.IsFixedSize
Producción :
False
Devolvió False
, lo que significa que no tiene un tamaño fijo.
Ahora, agreguemos un nuevo elemento, Miércoles
, a ArrayList
$days
. El método Add()
añade un nuevo elemento al final de ArrayList
.
$days.Add("Wednesday")
Imprime el número de índice en el que se agrega un nuevo elemento.
3
Ejecute lo siguiente para verificar el elemento agregado en ArrayList
.
$days
Producción :
Sunday
Monday
Tuesday
Wednesday
Como puede ver, Wednesday
se agrega con éxito a ArrayList
$days
.
Para eliminar un elemento de ArrayList
, puede utilizar el método Remove()
.
$days.Remove("Monday")
$days
Producción :
Sunday
Tuesday
Wednesday
El método Remove()
elimina la primera aparición del elemento especificado de la ArrayList
.
También puede eliminar un elemento específico utilizando el número de índice. El método RemoveAt()
permite eliminar un elemento en el índice especificado de ArrayList
.
El siguiente ejemplo elimina el elemento en el número de índice 2
de ArrayList
$days
.
$days.RemoveAt(2)
$days
Producción :
Sunday
Tuesday
A veces, es posible que tenga varios elementos para eliminar de un rango específico, por ejemplo, 1-10, 5-9, 12-22, etc. En tales casos, puede usar el método RemoveAt()
para eliminar un rango de elementos de la Lista de arreglos
.
Este comando crea un nuevo ArrayList
$months
.
[System.Collections.ArrayList]$months = "Jan", "Feb", "Mar", "Apr", "May", "Jun", "July", "Aug", "Sep", "Oct", "Nov", "Dec"
El siguiente ejemplo eliminará elementos en el rango de números de índice 6-11
de ArrayList
$months
.
$months.RemoveRange(6,5)
Compruebe si esos elementos se eliminan de ArrayList
.
$months
Producción :
Jan
Feb
Mar
Apr
May
Jun
Dec
Si está confundido con los parámetros, utiliza la siguiente sintaxis.
RemoveRange(index, count)
índice
: índice inicial del rango de elementos que se eliminarán.recuento
- número de elementos a eliminar del rango inicial.