Soy un principiante en PowerShell y conozco C# moderadamente bien. Recientemente estaba escribiendo este script de PowerShell y quería crear un Hashset. Así que escribí ($ azAz es una matriz)Llamando al Constructor con Array Argumento de Powershell
[System.Collections.Generic.HashSet[string]]$allset = New-Object System.Collections.Generic.HashSet[string]($azAZ)
y presiona ejecutar. Tengo este mensaje:
New-Object : Cannot find an overload for "HashSet`1" and the argument count: "52".
At filename.ps1:10 char:55
+ [System.Collections.Generic.HashSet[string]]$allset = New-Object System.Collecti ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [New-Object], MethodException
+ FullyQualifiedErrorId : ConstructorInvokedThrowException,Microsoft.PowerShell.Commands.NewObjectCommand
Entonces, busqué en Google constructores en PowerShell con parámetros de matriz y ha cambiado el código para:
[System.Collections.Generic.HashSet[string]]$allset = New-Object System.Collections.Generic.HashSet[string](,$azAZ)
De alguna manera, ahora sale este mensaje:
New-Object : Cannot find an overload for "HashSet`1" and the argument count: "1".
At C:\Users\youngvoid\Desktop\test5.ps1:10 char:55
+ [System.Collections.Generic.HashSet[string]]$allset = New-Object System.Collecti ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [New-Object], MethodException
+ FullyQualifiedErrorId : ConstructorInvokedThrowException,Microsoft.PowerShell.Commands.NewObjectCommand
¿No puede encontrar una sobrecarga para HashSet y el argumento count 1? ¿Me estás tomando el pelo? Gracias.
Por qué la coma en (, $ AZAZ) ?? –
no lo sé, lo obtuve de una búsqueda en google. Ni siquiera leí el artículo, pero al menos consiguió que powershell tratara a $ azAZ como 1 argumento. Tal vez es porque la coma indica argumentos separados? – irisjay
Es porque la coma es el operador de creación de la matriz, por lo que hace de $ azAZ una matriz con un elemento único de $ azAZ. Creo que @ ($ azAZ) es una forma más clara de crear una matriz de matriz. – Massif