J'ai une façon de faire des tableaux dans d'autres langages comme ceci :
$x = "David"
$arr = @()
$arr[$x]["TSHIRTS"]["SIZE"] = "M"
Cela génère une erreur.
J'ai une façon de faire des tableaux dans d'autres langages comme ceci :
$x = "David"
$arr = @()
$arr[$x]["TSHIRTS"]["SIZE"] = "M"
Cela génère une erreur.
Vous pouvez également utiliser System.Collections.ArrayList
pour créer un tableau de tableaux ou ce que vous voulez. Voici un exemple :
$resultsArray= New-Object System.Collections.ArrayList
[void] $resultsArray.Add(@(@('$hello'),2,0,0,0,0,0,0,1,1))
[void] $resultsArray.Add(@(@('$test', '$testagain'),3,0,0,1,0,0,0,1,2))
[void] $resultsArray.Add("ERROR")
[void] $resultsArray.Add(@(@('$var', '$result'),5,1,1,0,1,1,0,2,3))
[void] $resultsArray.Add(@(@('$num', '$number'),3,0,0,0,0,0,1,1,2))
Un problème, si l'on peut appeler cela un problème, est que l'on ne peut pas fixer de limite. En outre, vous devez utiliser [void]
ou le script va s'énerver.
En utilisant la syntaxe .net (comme CB l'a indiqué ci-dessus)
vous ajoutez aussi de la cohérence à votre tableau...
si vous définissez un tableau...
et vous essayez de stocker différents types
Powershell vous "alertera" :
$a = New-Object 'byte[,]' 4,4
$a[0,0] = 111; // OK
$a[0,1] = 1111; // Error
Bien sûr, Powershell va vous "aider".
dans les conversions évidentes :
$a = New-Object 'string[,]' 2,2
$a[0,0] = "1111"; // OK
$a[0,1] = 111; // OK also
Un autre fil de discussion a pointé ici sur la façon d'ajouter à un tableau multidimensionnel dans Powershell. Je ne sais pas s'il y a une raison de ne pas utiliser cette méthode, mais elle a fonctionné pour mes besoins.
$array = @()
$array += ,@( "1", "test1","a" )
$array += ,@( "2", "test2", "b" )
$array += ,@( "3", "test3", "c" )
Carême d'en haut :
$arr = ConvertFrom-Csv @'
Name,Article,Size
David,TShirt,M
Eduard,Trouwsers,S
'@
Imprimez le $arr :
$arr
Name Article Size
---- ------- ----
David TShirt M
Eduard Trouwsers S
Sélectionnez maintenant "David".
$arr.Where({$_.Name -eq "david"})
Name Article Size
---- ------- ----
David TShirt M
Maintenant, si vous voulez connaître la taille de "David".
$arr.Where({$_.Name -eq "david"}).size
M
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
1 votes
Comme cela a été souligné précédemment, le code que vous avez posté est un dictionnaire ou un hachage, et non un tableau commun.