Initialiser le dictionnaire lors de la déclaration à l'aide de PowerShell
Compte tenu de cette powershell code:
$drivers = New-Object 'System.Collections.Generic.Dictionary[String,String]'
$drivers.Add("nitrous","vx")
$drivers.Add("directx","vd")
$drivers.Add("openGL","vo")
Est-il possible d'initialiser ce dictionnaire directement, sans avoir à appeler la méthode Add. Comme .NET vous permet de faire?
Quelque chose comme cela?
$foo = New-Object 'System.Collections.Generic.Dictionary[String,String]'{{"a","Alley"},{"b" "bat"}}
[pas sûr de ce type de syntaxe, cela impliquerait]
Vous devez vous connecter pour publier un commentaire.
Pas. La syntaxe d'initialisation pour
Dictionary<TKey,TValue>
est la syntaxe C# bonbons. Powershell a sa propre syntaxe d'initialiseur de soutien pourSystem.Collections.HashTable
(@{}
):Pour [probablement] presque tous les cas, il fonctionnera tout aussi bien que
Dictionary<TKey,TValue>
. Si vous avez vraiment besoinDictionary<TKey,TValue>
pour une raison quelconque, vous pourriez faire une fonction qui prend unHashTable
et parcourt les clés et les valeurs à ajouter à une nouvelleDictionary<TKey,TValue>
.Le C# initialiseur de la syntaxe n'est pas exactement le "direct" de toute façon. Le compilateur de générer des appels à
Add()
d'elle.