Подтвердить что ты не робот

Как сравнить содержимое двух строковых объектов в PowerShell

В PowerShell у меня есть массив строковых объектов, и у меня есть объект, который содержит строковые объекты. В Java вы можете выполнить .equals(aObject), чтобы проверить, соответствуют ли строковые значения, а при выполнении теста ==, если два объекта ссылаются на одно и то же место в памяти.

Как запустить эквивалентный .equals(aObject) в powershell?

Я делаю это:

$arrayOfStrings[0].Title -matches $myObject.item(0).Title

Оба они имеют одинаковые строковые значения, но я получаю возвращаемое значение false. Любые предложения?

4b9b3361

Ответ 1

Вы хотите сделать $arrayOfString[0].Title -eq $myPbiject.item(0).Title

-match - для соответствия регулярных выражений (второй аргумент представляет собой регулярное выражение)

Ответ 2

Вы можете сделать это двумя разными способами.

Вариант 1: Оператор -eq

>$a = "is"
>$b = "fission"
>$c = "is"
>$a -eq $c
True
>$a -eq $b
False

Вариант 2: метод .Equals() объекта string. Поскольку строки в PowerShell являются объектами .Net System.String, любой метод этого объекта можно вызвать напрямую.

>$a.equals($b)
False
>$a.equals($c)
True
>$a|get-member -membertype method

Ниже перечислены методы System.String.