You must use New-Objectfor any, well, new object, otherwise this reference type $projectTypein your code refers to the same object. Here is the modified code:
function New-Project {
New-Object PSObject -Property @{
Project = ''
Category = ''
Description = ''
}
}
$projects = @()
foreach ($line in 1..9) {
$project = New-Project
$project.Project = $line
$project.Category = $line
$project.Description = $line
$projects += $project
}
$projects
New-Project , . $project = New-Object PSObject …. "" , .