如何在数组中将每个值乘以10? 给定的数组是
[int]$arr = 0..1000
现在我试图解决它的方式是:
foreach($valuex10 in $arr)
{
$valuex10 = $valuex10 * 10
}
我认为这应该有效,但它没有,我得到错误“无法转换为System.Int32”如果我试图给每个变量[int](标签?)ISE告诉我它不能处理它因为没有变量可以开始。 那有什么不对?
不允许创建新数组。
答案 0 :(得分:1)
您可以使用:
$arr = 0..1000
for($i = 0; $i -lt $arr.Length; $i++){
$arr[$i] = $arr[$i] * 10
}
答案 1 :(得分:0)
一种实用的方法,该方法将数组通过管道传递到ForEach-Object
命令(别名为%
)中,该命令调用script block(命令名之后的表达式,以{{1开头) }},并在为数组中的每个元素匹配{
)之后结束。通过命令对每个元素执行脚本块调用的结果组成了一个新数组:
}
上面是一个表达式-可以将其分配给变量。计算得出一个数组,其中第一个元素比0..1000 | % { $_ * 10 }
数组的第一个元素大10倍,第二个比1..1000
数组的第二个元素大10倍,依此类推。
顺便说一句,脚本块是Powershell中的“一流”对象,您可以分配它们并像使用其他任何对象一样使用它们。
例如,您可以重用脚本块:
1..1000