/ / Convertendo matrizes de objetos personalizados em matrizes String no Powershell - powershell

Convertendo matrizes de objetos personalizados para matrizes de strings no PowerShell - powershell

Então, estou ajustando algumas bibliotecas do Powershell e tenho uma pergunta simples que gostaria de resolver da melhor maneira ...

Em resumo, eu tenho alguns PSObjects personalizados em uma matriz:

$m1 = New-Object PSObject –Property @{Option="1"; Title="m1"}
$m2 = New-Object PSObject –Property @{Option="2"; Title="m2"}
$m3 = New-Object PSObject –Property @{Option="3"; Title="m3"}

$ms = $m1,$m2,$m3

que desejo converter em um array de strings .... idealmente, um único array de strings que possui uma entrada para cada item com as propriedades concatenadas. isto é

"1m1", "2m2", "3m3"

Eu tentei $ms | Select-Object Option,Title e $ms | %{ "O: $_.Option T: $_.Title "} mas eles me fornecem matrizes do PSObject (novamente) ou matrizes de matrizes.

Respostas:

25 para resposta № 1

Isso vai te dar o que você quer:

$strArray = $ms | Foreach {"$($_.Option)$($_.Title)"}

Selecionar objeto é como uma SQL SELECIONAR. Ele projeta as propriedades selecionadas em um novo objeto (objeto pscustom na v1 / v2 e Selected. <orignalTypeName> na V3). Sua segunda abordagem não funciona, porque $_.Option em uma string apenas "interpola" a variável $_. Não avaliará a expressão $_.Option.

Você pode obter seqüências de caracteres com aspas duplas para avaliar expressões usando subexpressões, por exemplo, "$ (...)" ou "$ ($ _. Option)".