首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在循环内构建自定义POSobjects

在循环内构建自定义POSobjects
EN

Stack Overflow用户
提问于 2020-07-30 22:50:24
回答 2查看 51关注 0票数 1

这对我来说是个新手,所以请原谅我,我的任务是创建一个自定义对象,让我们称之为$custOBJ

$custOBJ.name应为字符串,$custOBJ.numbers应为数字数组:

代码语言:javascript
复制
$custOBJ = New-Object PSObject
$custOBJ | Add-Member -type NoteProperty -name "Name" -Value "muzi"
$numbers = @(1,11,22)
$custOBJ | Add-Member -type NoteProperty -name "Numbers" -Value $numbers 

到目前为止一切顺利,现在我需要创建100个这样的对象(当然每个对象都有不同的值),然后我需要在数组上创建,以将所有对象放在一起,所以最后我应该有$custOBJ1$custOBJ2 ...以此类推,一个数组$array = @($custOBJ1, custOBJ2 ...)

我试着用一个for循环来做这件事,如下所示:

代码语言:javascript
复制
for ($i = 0; $i -lt 10; $i++) {
    $custOBJ[$i] = New-Object PSObject
    $custOBJ[$i] | Add-Member -type NoteProperty -name "test$i" -Value "testik$i"
    $numbers = @('1$i')
    $custOBJ[$i] | Add-Member -type NoteProperty -name "Numbers" -Value $numbers
}

我收到一个错误,很明显这不是正确的方法,有人能帮助我吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-07-30 23:14:55

您正在尝试做什么:$custOBJ[$i] =尝试在对象(数组) $custOBJ的元素号$i中存储一些内容。但是,我们还没有一个名为$custOBJ的可计数对象,并且使用[Number],您只能到达该对象已经存在的位置(该数组需要10个元素才能更改10个元素)。

相反,您可以通过收集for(each)返回的所有内容来创建数组:

代码语言:javascript
复制
$array = for ($i=0; $i -lt 10; $i++){    # collect the output of the for in $array
    $custOBJ = New-Object PSObject
    $custOBJ | Add-Member -type NoteProperty -name "test$i" -Value "testik$i"
    $numbers = @('1$i')
    $custOBJ | Add-Member -type NoteProperty -name "Numbers" -Value $numbers
    $custOBJ  # return this instance of $custOBJ     
}

或者简而言之,js2010写的东西。

票数 1
EN

Stack Overflow用户

发布于 2020-07-30 23:05:40

一种更常见的形式是:

代码语言:javascript
复制
$custOBJ = foreach ($i in 0..9){
  [pscustomobject]@{
    Test = "testik$i"
    Numbers = 0..$i
  }
}
$custOBJ


Test    Numbers
----    -------
testik0 {0}
testik1 {0, 1}
testik2 {0, 1, 2}
testik3 {0, 1, 2, 3}
testik4 {0, 1, 2, 3…}
testik5 {0, 1, 2, 3…}
testik6 {0, 1, 2, 3…}
testik7 {0, 1, 2, 3…}
testik8 {0, 1, 2, 3…}
testik9 {0, 1, 2, 3…}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63175745

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档