【问题标题】:Adding property with multiple values to a custom object将具有多个值的属性添加到自定义对象
【发布时间】:2016-02-19 22:47:50
【问题描述】:

我有一个自定义对象,我在其中直接添加了一个变量的属性,但是有一个属性包含多个值。如何将所有这些多个值添加到我的自定义对象?

如果有一对一的值,这很好用

 $info | Add-Member -Type NoteProperty -Name "USEDSPACE %" -Value $usage

但在这种情况下 $result.name 不起作用,其中 $result.name 有一组值不是一个

$info | Add-Member -Type NoteProperty -Name PATHS -Value $result.name

【问题讨论】:

  • 你说的不工作是什么意思?结果与您想要的结果有何不同?
  • @PetSerAl 当我尝试将它作为 HTML 发送出去时它没有显示出来,所以我假设它没有添加和显示这个:System.Object[]
  • 如何将对象转换为 HTML?
  • 您的问题不在于自定义对象属性具有多个值,而是当您尝试转换为 HTML 时,它期望属性具有值字符串。在转换为 HTML 之前,您需要将数组转换为字符串。 $info | Add-Member 'Paths' ($result.name -join "`r`n")

标签: powershell object properties custom-object


【解决方案1】:

这就是我设法将多个值添加到 PS 自定义对象的方法,也许您可​​以根据需要对其进行调整:

$table = New-Object psobject

$table | gm

$keys = New-Object System.Collections.ArrayList

for([int32]$i = 1;$i -le 8;$i++){[void]$keys.add($i)}

$table | Add-Member -MemberType NoteProperty -Name Keys -Value $keys

检查您的数据并输入:

$table | gm

$table

$table.Keys

$table.Keys[0]

$table.Keys[5]

您当然可以使用您需要的任何数据类型,在我的情况下需要一个 int32,但您可以将任何内容添加到您的列表中,并且您的自定义对象的 noteproperty 将具有相同的数据类型。

如果你想使用对象中的值,你可以像这样访问它们,并对它们做一些事情。

foreach($key in $table.Keys){[math]::Pow(2,$key)}

希望我能帮上忙!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-15
    • 1970-01-01
    • 2015-07-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多