DOBON.NET DOBON.NETプログラミング掲示板過去ログ

Powershell2.0 -containsの動作について

環境/言語:[Windows 7/Powershell2.0]
分類:[その他]

お世話になります。

-contains演算子の正しい使い方なのか自信がないのですが。
配列の中に特定の要素があるかチェック、という使い方をしています。

$test = "222","333","c:\temp"
$a = "222"
$test -contains $a
True

この動作は理解できるのですが、次のようなパターンでTrueになるのはどういう動作をしているのでしょうか?

$b = get-item c:\temp
$test -contains $b
True

●$b.GetType()とすると、stringではないのですが、どのような動作がおこなわれているのでしょうか?
IsPublic IsSerial Name BaseType
-------- -------- ---- ------
True True FileInfo System.IO.FileSystemInfo

書いていて、なんとなくTostring()しているような気がしてきましたが。。。常にこのようになるのでしょうか?

よろしくお願いします。
■No31661に返信(keiさんの記事)

Powershell2.0は使ったことがないので
予想です。


> 書いていて、なんとなくTostring()しているような気がしてきましたが。。。常にこのようになるのでしょうか?

-contains がどこまで判断しているか分かりませんが、$test が文字列の配列なので
そのなかから探すとしたら文字列を渡す必要があるというのが一般的なプログラミング言語の考え方としてあるのでToStringによる文字列化が自動で行われていると
思います。

DOBON.NET | プログラミング道 | プログラミング掲示板