Tableaux et les Dictionnaires en Powershell – Part 1.4

Tableaux et liste powershell
Tableaux et liste powershell

Introduction

Les tableaux et les dictionnaires en PowerShell sont des structures de données essentielles pour organiser et manipuler efficacement les informations. Dans cet article, nous explorerons en détail ces structures en utilisant l’exemple d’un système de gestion de bibliothèque. Ces outils sont particulièrement utiles pour gérer des collections d’éléments (comme des livres) et des informations structurées (comme les détails d’un livre).

Tableaux : Gérer la collection de livres

Les tableaux en PowerShell sont des structures de données qui permettent de stocker plusieurs éléments du même type ou de types différents dans une seule variable. Ils sont particulièrement utiles pour gérer des listes, comme une collection de livres dans une bibliothèque.

Création de tableaux

Il existe plusieurs façons de créer des tableaux en PowerShell :

$livresDisponibles = @("1984", "Le Petit Prince", "Dune", "Fondation")

Cette méthode utilise l’opérateur @() pour créer un tableau avec plusieurs éléments.

$nouveauLivre = ,"L'Étranger"

L’utilisation de la virgule avant un élément crée un tableau avec un seul élément.

$auteursCelebres = "George Orwell", "Antoine de Saint-Exupéry", "Frank Herbert"

Cette syntaxe crée un tableau sans utiliser @(), ce qui est pratique pour des listes courtes.

Ajout d’éléments

Pour ajouter des éléments à un tableau existant :

$livresDisponibles += "Le Seigneur des Anneaux"

L’opérateur += ajoute un élément à la fin du tableau.

$livresDisponibles += @("Fahrenheit 451", "Neuromancien")

Cette méthode permet d’ajouter plusieurs éléments à la fois.

Manipulation de tableaux

Les tableaux offrent diverses méthodes de manipulation :

$livresDisponibles[2] = "Dune - Édition Collector"

Cette ligne modifie le troisième élément du tableau (l’index commence à 0).

$livresDisponibles.SetValue("Le Petit Prince - Édition Illustrée", 1)

La méthode SetValue() offre une autre façon de modifier un élément spécifique.

$selectionLivres = $livresDisponibles[0,3,4]

Cette syntaxe crée un nouveau tableau contenant les éléments aux indices spécifiés.

$livresDisponiblesTries = $livresDisponibles | Sort-Object

Utilise le pipeline pour trier les éléments du tableau.

$livresLongs = $livresDisponibles | Where-Object { $_.Length -gt 10 }

Filtre les éléments du tableau selon une condition.

Informations sur le tableau

Pour obtenir des informations sur le tableau :

$nombreLivres = $livresDisponibles.Count

Retourne le nombre d’éléments dans le tableau.

$contient1984 = $livresDisponibles -contains "1984"

Vérifie si un élément spécifique est présent dans le tableau.

$indexDune = $livresDisponibles.IndexOf("Dune")

Trouve l’index d’un élément spécifique dans le tableau.

$livreAleatoire = $livresDisponibles | Get-Random

Sélectionne un élément aléatoire du tableau.

Opérations avancées

Pour des manipulations plus avancées :

$listeFormatee = $livresDisponibles -join ", "

Convertit le tableau en une chaîne de caractères, avec les éléments séparés par des virgules.

$nouveauxLivres = "Moby Dick,Don Quichotte,Anna Karénine" -split ","

Crée un tableau à partir d’une chaîne en la divisant selon un délimiteur.

$livresDisponibles | ForEach-Object { Write-Host "Livre disponible : $_" }

Utilise ForEach-Object pour effectuer une action sur chaque élément du tableau.

$catalogueLivres = @(
    @{Titre="1984"; Auteur="George Orwell"; Annee=1949},
    @{Titre="Dune"; Auteur="Frank Herbert"; Annee=1965}
)

Crée un tableau de hashtables, utile pour stocker des informations structurées sur chaque livre.

Tableaux et liste powershell
Tableaux et liste powershell

Dictionnaires : Organiser les informations détaillées des livres

Les dictionnaires, ou hashtables, sont des structures de données qui stockent des paires clé-valeur. Ils sont idéaux pour organiser des informations détaillées sur des éléments individuels, comme les caractéristiques d’un livre.

Création de dictionnaires

$infoLivre = @{
    "Titre" = "1984"
    "Auteur" = "George Orwell"
    "AnneePublication" = 1949
    "Genre" = "Science-fiction"
    "Disponible" = $true
}

Cette syntaxe crée un dictionnaire avec plusieurs paires clé-valeur.

Manipulation de dictionnaires

Pour modifier le contenu d’un dictionnaire :

$infoLivre["NombrePages"] = 328

Ajoute une nouvelle paire clé-valeur au dictionnaire.

$infoLivre["Disponible"] = $false

Modifie la valeur d’une clé existante.

$infoLivre.Remove("Genre")

Supprime une paire clé-valeur du dictionnaire.

if ($infoLivre.ContainsKey("Auteur")) {
    Write-Host "L'auteur est connu"
}

Vérifie l’existence d’une clé dans le dictionnaire.

foreach ($cle in $infoLivre.Keys) {
    Write-Host "$cle : $($infoLivre[$cle])"
}

Parcourt toutes les entrées du dictionnaire.

Opérations avancées sur les dictionnaires

Pour des manipulations plus complexes :

$infoSupplementaires = @{
    "ISBN" = "978-0451524935"
    "Editeur" = "Signet Classic"
}
$infoLivreComplete = $infoLivre + $infoSupplementaires

Fusionne deux dictionnaires.

$chronologieLivre = [ordered]@{
    "Ecriture" = 1948
    "Publication" = 1949
    "TraductionFrancaise" = 1950
}

Crée un dictionnaire ordonné, où l’ordre des clés est préservé.

$chronologieLivre.GetEnumerator() | ForEach-Object {
    Write-Host "$($_.Key) : $($_.Value)"
}

Utilise GetEnumerator pour parcourir le dictionnaire ordonné.

$livreObjet = [PSCustomObject]$infoLivre

Convertit le dictionnaire en objet PowerShell personnalisé.

Write-Host "Titre du livre : $($livreObjet.Titre)"

Accède aux propriétés de l’objet créé à partir du dictionnaire.

Tableaux et liste powershell
Tableaux et liste powershell

Conclusion

Les tableaux et les dictionnaires en PowerShell offrent une grande flexibilité pour organiser et manipuler des données complexes comme celles d’une bibliothèque. En maîtrisant ces structures, vous pouvez créer des scripts puissants et efficaces pour gérer de grandes quantités d’informations structurées. Ces outils sont essentiels pour tout administrateur système ou développeur travaillant avec PowerShell, permettant une gestion efficace des données dans divers scénarios, de la simple liste de livres à des systèmes de gestion de bibliothèque plus complexes.

Liens internes

Liens externes

Comments

No comments yet. Why don’t you start the discussion?

    Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *