58

在 PowerShell 中,我有一个字符串对象数组,并且我有一个包含字符串对象的对象。在 Java 中,您可以.equals(aObject)测试字符串值是否匹配,同时==测试两个对象是否引用内存中的相同位置。

如何.equals(aObject)在 powershell 中运行等价物?

我正在这样做:

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

它们都具有完全相同的字符串值,但我得到的返回值为 false。有什么建议么?

4

2 回答 2

80

你想做$arrayOfString[0].Title -eq $myPbiject.item(0).Title

-match用于正则表达式匹配(第二个参数是正则表达式)

于 2013-09-12T18:47:46.000 回答
60

您可以通过两种不同的方式进行操作。

选项 1:-eq操作员

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

选项2:对象的.Equals()方法string。因为 PowerShell 中的字符串是 .NetSystem.String对象,所以可以直接调用该对象的任何方法。

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

方法列表System.String如下。

于 2013-09-12T20:04:54.450 回答