Разобрать объект и добавить свойство члена каждому члену - PullRequest
2 голосов
/ 13 октября 2011

У меня есть объект, который выглядит, например, вот так

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

Я хочу пройтись по каждому члену, проверить номер и добавить свойство, которое в конце концов выглядит следующим образом.

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

То, что я получил до сих пор, - это цикл foreach через объект, но затем у меня есть два объекта, и у меня нет шансов, насколько мне известно, изменить исходный объект.

Ответы [ 3 ]

3 голосов
/ 13 октября 2011

Просто еще одна (более короткая) версия:

$obj | add-member -type scriptproperty -name IsItOne -value {$this.Number -eq 'one'} -passthru
3 голосов
/ 13 октября 2011

Похоже, вы говорите о наборе объектов со свойствами Name и Number.

Если это так, вы можете сделать так:

$a | %{  $isitone = $false; if($_.Number -eq "one") {$isitone=$true} $_ | 
         add-member -Type noteproperty -name IsItOne -value $isitone  }
2 голосов
/ 13 октября 2011

Вот возможная альтернатива.

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"} }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...