2011-10-12 79 views
2

我有一個對象,看起來例如像這樣解析對象和成員屬性添加到每個成員

Name  Number 
----  ------ 
John  one 
Major  two 
Mars  one 

我想通過每個成員及檢查號並添加一個屬性,它到底它看起來像這樣。

Name  Number  IsItOne 
----  ------  ------- 
John  one  True 
Major  two  False 
Mars  one  True 

我走到這一步,就是做一個foreach循環通過對象,但當時我有兩個對象和機會都沒有,據我知道要改變原來的對象。

+0

您是在談論一個物體還是一組物體?它看起來像你有三個對象 – manojlds

回答

3

看起來好像你正在談論一組對象的屬性爲NameNumber

如果是的話,你可以這樣做:

$a | %{ $isitone = $false; if($_.Number -eq "one") {$isitone=$true} $_ | 
     add-member -Type noteproperty -name IsItOne -value $isitone } 
+0

這就是訣竅,謝謝。愛這如何比周圍的工作更優雅10倍,我試圖做:) – Elvar

3

又一個(較短)版本:

$obj | add-member -type scriptproperty -name IsItOne -value {$this.Number -eq 'one'} -passthru 
2

這裏是一個可能的選擇。

function new-stuff ($name, $number) { 
    New-Object PSObject -Property @{name=$name; number=$number} 
} 

$(
    new-stuff John one 
    new-stuff Major two 
    new-stuff Mars one 
) | ForEach { $_ | Add-Member -PassThru ScriptProperty IsItOne {$this.Number-eq"one"} }