Tables de hachage et de l'ordre des clés
Est-il un moyen de maintenir la commande de clés dans une table de hachage comme ils ont été ajoutés? Comme un push/pop mécanisme.
Exemple:
$hashtable = @{}
$hashtable.Add("Switzerland", "Bern")
$hashtable.Add("Spain", "Madrid")
$hashtable.Add("Italy", "Rome")
$hashtable.Add("Germany", "Berlin")
$hashtable
Je veux garder l'ordre dans lequel j'ai ajouté les éléments de la table de hachage.
Vous devez vous connecter pour publier un commentaire.
Il n'y a pas de solution intégrée dans PowerShell V1 /V2. Vous souhaitez utiliser les .NET
System.Les Collections.Spécialisés.OrderedDictionary
:Dans PowerShell V3 vous pouvez lancer à [ordonné]:
Vous pouvez utiliser un ordre dictionnaire de la place:
Comme ceci:
Vous pouvez donner un séquentielle clés que vous ajoutez des éléments:
Ensuite, vous pouvez obtenir les éléments triés par la clé:
Pour la compatibilité avec les anciens PowerShell versions, vous pouvez envisager cette applet de commande:
Cette applet de commande retourne une liste de clés commandé par la définition de la fonction:
Trier par nom:
Trier par valeur:
Vous avez aussi la possibilité d'imbriquer les tables de hachage:
E. g. trier par (hachés) afin de la propriété et de revenir sur la touche (pays):
Ou de tri (ordre décroissant) par la prédéfinis capital:
Le PowerShell 1 consiste à ajouter une table de hachage membre conserve la commande ajouter. Il n'est pas nécessaire pour utiliser le Système.Les Collections.Spécialisés.OrderedDictionary:
Ici est une simple routine qui fonctionne pour moi.
et l'appel à l'utiliser