我有一个对象,例如这样的
Name Number
---- ------
John one
Major two
Mars one
我想浏览每个成员并检查数字并添加一个最终看起来像这样的属性。
Name Number IsItOne
---- ------ -------
John one True
Major two False
Mars one True
到目前为止我所做的是通过对象进行foreach循环,但后来我有两个对象,据我所知,没有机会更改原始对象。
答案 0 :(得分:3)
好像你在谈论一组具有属性Name
和Number
的对象。
如果是这样,你可以这样做:
$a | %{ $isitone = $false; if($_.Number -eq "one") {$isitone=$true} $_ |
add-member -Type noteproperty -name IsItOne -value $isitone }
答案 1 :(得分:3)
另一个(更短)版本:
$obj | add-member -type scriptproperty -name IsItOne -value {$this.Number -eq 'one'} -passthru
答案 2 :(得分: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"} }