私はこれに気づき、苦労して学んだので、共有したいと思います。次の文字列のリストがあるとします。
>$list = New-Object -TypeName System.Collections.Generic.List[string]
>$list.Add("x")
>$list.Add("yy")
>$list.Add("zzz")
>$list
x
yy
zzz
リスト内の項目数を取得したい場合は、.Count プロパティにアクセスすると、予想どおり "3" が得られます。
>$list.Count
3
ただし、.Count の代わりに .Length にアクセスして間違いを犯すことがあります。Python や C# などの他の言語では、このプロパティが使用できないというエラーが表示されます。しかし、PowerShell では、そのオブジェクトで見つからない場合、含まれているオブジェクトを反復処理し、それらのプロパティにアクセスすることがわかります。つまり、長さのリストができあがります! サプライズ!!
>$list.Length
1
2
3
メソッドを呼び出すこともできます!
>$list.ToUpper()
X
YY
ZZZ
私が試したように、この「機能」は System.Collections.ArrayList でも機能することに注意してください。ただし、PowerShell の組み込みの配列型では機能しません。
この「機能」は何と呼ばれますか? そして、なぜそのように設計されているのですか?これは非常に驚くべきことであり、エラーが発生しやすいものです。