简单赋值时丢失的字符



我在powershell中连接一个简单的字符串时遇到了一个非常奇怪的问题。

我有一个充满整数的数组(我们叫它$countArray)和一个充满字符串的数组($reportMsg)。我正在使用这些元素为消息创建一个描述,并以新行结束。对数字数组中的每个元素执行此操作。

$description= "`"";
foreach($num in $countArray){
    if($num -gt 0){
        $description+=[string]$num[$i] + $reportMsg[$i]+"`n";
    }
    $i++
}
$description+="`","
Write-output $description

问题是,当我执行这个时,只有第一个数字被连接到字符串。我100%确定$num数组中的所有值都被分配。在PowerShell ISE的调试器中,它甚至显示$num有一个值,它只是没有分配给$description。

所需输出:

"10 - apples detected
19 - oranges detected
4 - bananas detected
100 - guavas detected",
当前输出:

"10 - apples detected
 - oranges detected
 - bananas detected
 - guavas detected",

我做错了什么?

如果不确切知道这些数组中的内容,则很难判断,但我怀疑:

$description+=[string]$num[$i] + $reportMsg[$i]+"`n";

应为

$description+=[string]$num + $reportMsg[$i]+"`n";

最新更新