Powershell - Hashtables

Hashtable stocke les paires clé / valeur dans une table de hachage. Lorsque vous utilisez une table de hachage, vous spécifiez un objet utilisé comme clé et la valeur que vous souhaitez lier à cette clé. Généralement, nous avons utilisé des chaînes ou des nombres comme clés.

Ce didacticiel explique comment déclarer des variables de table de hachage, créer des tables de hachage et traiter une table de hachage à l'aide de ses méthodes.

Déclaration des variables de hachage

Pour utiliser une table de hachage dans un programme, vous devez déclarer une variable pour référencer la table de hachage. Voici la syntaxe pour déclarer une variable de hachage -

Syntaxe

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

Note- Des dictionnaires ordonnés peuvent être créés en utilisant une syntaxe similaire. Les dictionnaires ordonnés conservent l'ordre dans lequel les entrées sont ajoutées, contrairement aux tables de hachage.

Exemple

Les extraits de code suivants sont des exemples de cette syntaxe -

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

Imprimez la table de hachage.

$hash

Production

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

Les valeurs de la table de hachage sont accessibles via le keys.

> $hash["ID"]
 1

Traitement de la table de hachage

La notation par points peut être utilisée pour accéder aux clés ou aux valeurs de hashtables.

> $hash.keys
ID
Color
Shape

> $hash.values
1
Blue
Square

Exemple

Voici un exemple complet montrant comment créer, initialiser et traiter une table de hachage -

$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

Cela produira le résultat suivant -

Production

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