Im trying to create an array of object with fields depending on certain condition. I have ths code:
$Array = @(1,2,3,4,5,6,3,4,5,7,9,0,8,9)
$CurrentFolder = Split-Path -parent $MyInvocation.MyCommand.Definition
$Report = @()
foreach($Item in $Array)
{
$Obj = New-Object PSObject
$Obj | Add-Member -MemberType NoteProperty -Name "Item" -Value $Item
switch ($Item)
{
1 { $Obj | Add-Member -MemberType NoteProperty -Name "Field_1" -Value "Value_Field_1"}
2 { $Obj | Add-Member -MemberType NoteProperty -Name "Field_2" -Value "Value_Field_2"}
3 { $Obj | Add-Member -MemberType NoteProperty -Name "Field_3" -Value "Value_Field_3"}
4 { $Obj | Add-Member -MemberType NoteProperty -Name "Field_4" -Value "Value_Field_4"}
5 { $Obj | Add-Member -MemberType NoteProperty -Name "Field_5" -Value "Value_Field_5"}
6 { $Obj | Add-Member -MemberType NoteProperty -Name "Field_6" -Value "Value_Field_6"}
7 { $Obj | Add-Member -MemberType NoteProperty -Name "Field_7" -Value "Value_Field_7"}
8 { $Obj | Add-Member -MemberType NoteProperty -Name "Field_8" -Value "Value_Field_8"}
9 { $Obj | Add-Member -MemberType NoteProperty -Name "Field_9" -Value "Value_Field_9"}
0 { $Obj | Add-Member -MemberType NoteProperty -Name "Field_0" -Value "Value_Field_0"}
}
$Report = $Report + $Obj
}
$Report | ft -autosize
#$Report | Get-member
When I execute this code I get just two properties. Item and Field_1, I get the property Field_1 because the number 1 is the first item on the array variable.
I would like to get an array with all the properties Field_0 to Field_9 and its values either if they are empty or not.
I tried this using Hash tables, but I got the same result.