$obj = New-Object -Type PSObject
$obj | Add-Member -Type ScriptProperty -Name ArrayMember {"" -split ","}
$obj.ArrayMember.GetType().Name
Output: String
$obj = New-Object -Type PSObject
$obj | Add-Member -Type ScriptProperty -Name ArrayMember {"1" -split ","}
$obj.ArrayMember.TetType().Name
Output: String
$obj = New-Object -Type PSObject
$obj | Add-Member -Type ScriptProperty -Name ArrayMember {"1,2" -split ","}
$obj.ArrayMember.GetType().Name
Output: Object[]
I want to directly use $obj.ArrayMember += 3 to append 3 into the array, but if it return a string, like "1", the result will be 13, but I expected [1,3].
,("" -split ","),,("1" -split ","),,("1,2" -split ","). Note that it first case you have single element array, but not empty array.$TestObject = [PSCustomObject]@{ArrayPropOne = [array]@()}<<< however, you may want to define it as ageneric.listsince that has a working.Add()method. [grin]