将结果转换为数组

时间:2016-01-04 13:13:18

标签: arrays powershell

我有这段代码:

$myarray = @(@(0..3) | foreach {(@(0..$_) | Measure-Object -Sum).Sum})
[array]::indexof($myarray,2)

$ myarray包含值0,1,3,6,所以我希望[array]::indexof($myarray,3)返回值2,但事实并非如此。它返回-1。

我假设我认为的数组实际上并不是一个数组,所以我假设分配给$myarray的东西需要得到不知何故转换成阵列,显然我做错了。

2 个答案:

答案 0 :(得分:1)

通过索引号获取数组中值的更简单方法如下:

$myarray[2]

抱歉,误解了你的问题。要在数组中首次出现值,请尝试以下方法:

$myarray.IndexOf([double]3)

答案 1 :(得分:0)

想出来,抱歉。它是一系列双打,而不是一系列的整数。这是有效的(实际上是我想要的,即2016年的元素):

$array = @(0..64) | foreach {[int](@(0..$_) | Measure-Object -Sum).Sum}
[array]::indexof($array,2016)