Dans PowerShell, j'ai un tableau d'objets chaîne et un objet contenant des objets chaîne. Dans Java vous pouvez effectuer une .equals(aObject)
] pour vérifier si les valeurs de chaîne correspondent, alors que vous effectuez un test ==
Si les deux objets font référence au même emplacement dans Mémoire.
Comment puis-je exécuter un équivalent .equals(aObject)
dans Powershell?
Je fais ça:
$arrayOfStrings[0].Title -matches $myObject.item(0).Title
Ces deux ont exactement les mêmes valeurs de chaîne, mais j'obtiens une valeur de retour de false. Aucune suggestion?
Vous voulez faire $arrayOfString[0].Title -eq $myPbiject.item(0).Title
-match
est utilisé pour la correspondance de regex (le deuxième argument est une regex)
Vous pouvez le faire de deux manières différentes.
Option 1: l'opérateur -eq
>$a = "is"
>$b = "fission"
>$c = "is"
>$a -eq $c
True
>$a -eq $b
False
Option 2: La méthode .Equals()
de l'objet string
. Comme les chaînes dans PowerShell sont des objets .Net System.String
, Toute méthode de cet objet peut être appelée directement.
>$a.equals($b)
False
>$a.equals($c)
True
>$a|get-member -membertype method
La liste des méthodes System.String
Suit.