解析对象并向每个成员添加成员属性

时间:2011-10-12 23:10:29

标签: object powershell

我有一个对象,例如这样的

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

我想浏览每个成员并检查数字并添加一个最终看起来像这样的属性。

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

到目前为止我所做的是通过对象进行foreach循环,但后来我有两个对象,据我所知,没有机会更改原始对象。

3 个答案:

答案 0 :(得分:3)

好像你在谈论一组具有属性NameNumber的对象。

如果是这样,你可以这样做:

$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"} }