[powershell] How do I concatenate strings and variables in PowerShell?

Just for the fun. You can also access the values of the PSObject directly like below:

$assoc.psobject.Properties.value -join " - "

But if you do not specify that the object should be ordered, PowerShell will display the values in a random order. So you should add the flag [ordered]:

$assoc = [pscustomobject] [ordered] @{
    Id = 42
    Name = "Slim Shady"
    Owner = "Eminem"
}