Powershell - Hashtables

Hashtable almacena pares clave / valor en una tabla hash. Cuando usa una tabla hash, especifica un objeto que se usa como clave y el valor que desea vincular a esa clave. Generalmente usamos String o números como claves.

Este tutorial presenta cómo declarar variables de tabla hash, crear tablas hash y procesar tablas hash utilizando sus métodos.

Declaración de variables hashtable

Para usar una tabla hash en un programa, debe declarar una variable para hacer referencia a la tabla hash. Aquí está la sintaxis para declarar una variable de tabla hash:

Sintaxis

$hash = @{ ID = 1; Shape = "Square"; Color = "Blue"}
or
$hash = @{}

Note- Los diccionarios pedidos se pueden crear utilizando una sintaxis similar. Los diccionarios ordenados mantienen el orden en el que se agregan las entradas, mientras que las tablas hash no.

Ejemplo

Los siguientes fragmentos de código son ejemplos de esta sintaxis:

$hash = [ordered]@{ ID = 1; Shape = "Square"; Color = "Blue"}

Imprime la tabla hash.

$hash

Salida

Name                           Value    
----                           -----                                                    
ID                             1                                                        
Color                          Blue                                                     
Shape                          Square

Se accede a los valores de la tabla hash a través del keys.

> $hash["ID"]
 1

Procesando Hashtable

La notación de puntos se puede utilizar para acceder a claves o valores de tablas hash.

> $hash.keys
ID
Color
Shape

> $hash.values
1
Blue
Square

Ejemplo

Aquí hay un ejemplo completo que muestra cómo crear, inicializar y procesar la tabla hash:

$hash = @{ ID = 1; Shape = "Square"; Color = "Blue"}

write-host("Print all hashtable keys")
$hash.keys

write-host("Print all hashtable values")
$hash.values

write-host("Get ID")
$hash["ID"]

write-host("Get Shape")
$hash.Number

write-host("print Size")
$hash.Count

write-host("Add key-value")
$hash["Updated"] = "Now"

write-host("Add key-value")
$hash.Add("Created","Now")

write-host("print Size")
$hash.Count

write-host("Remove key-value")
$hash.Remove("Updated")

write-host("print Size")
$hash.Count

write-host("sort by key")
$hash.GetEnumerator() | Sort-Object -Property key

Esto producirá el siguiente resultado:

Salida

Print all hashtable keys
ID
Color
Shape
Print all hashtable values
1
Blue
Square
Get ID
1
Get Shape
print Size
3
Add key-value
Add key-value
print Size
5
Remove key-value
print Size
4
sort by key

Name                           Value                                                                                                   
----                           -----                                                                                                   
Color                          Blue                                                                                                    
Created                        Now                                                                                                     
ID                             1                                                                                                       
Shape                          
Square