2017-02-07 1 views
1

私はカスタムPSObjectの配列を返すことができるメソッドを持つpowershellクラスを持っていますが、メソッドを定義する方法が不平を言わないようにはわかりません。すなわちPowerShellクラスからカスタムPSObjectsの配列を返す

class ThisIsAClass { 
    MethodReturnsArray() { 
     $thisArray = @() 
     for ($i=0; $i -lt $total; $i++) { 
      $item = New-Object -TypeName PSObject 
      $item | Add-Member MemberType -NoteProperty -Name ID -Value i 
      $item | Add-Member MemberType -NoteProperty -Name Text -Value "a" 
     } 
     return $thisArray 
    } 
} 

答えて

3

MethodReturnsArray()メソッドの戻り値の型を宣言する必要があります。あなたは$thisArrayに直接forループからの出力を割り当てることができます。

class ThisIsAClass { 
    [array]MethodReturnsArray([int]$total) { 
     $thisArray = for ($i=0; $i -lt $total; $i++) { 
      $item = New-Object -TypeName PSObject 
      $item | Add-Member -MemberType NoteProperty -Name ID -Value $i 
      $item | Add-Member -MemberType NoteProperty -Name Text -Value "a" 
      $item 
     } 
     return $thisArray 
    } 
} 
+0

ああ、アレイは、私が行方不明になったキーワードでした。私は '[@()]'を試しました。私はタイマーが私を許可するときに私は受け入れる:)ありがとう! – clamport

+0

'[array]'は '[object []]'とは異なりますか? – TheMadTechnician

+0

@TheMadTechnician良い質問です。パフォーマンスの観点からは、 '[object []]や' [psobject []] 'はおそらく少し速いですが、' [array] 'が読みやすくなっています –

関連する問題