Powershell 中的简单字符串连接更新数组

Simple string concatenation updating array in Powershell

我在 Powershell 中有一个字符串数组。对于每个元素,我想将一个常量字符串与该元素连接起来,并在相应的索引处更新数组。我正在导入的文件是一个由换行符分隔的非空白字符串元素列表。

更新数组元素的串联似乎没有发生。

$Constant = "somestring"
[String[]]$Strings = Get-Content ".\strings.txt"

foreach ($Element in $Strings) {
  $Element = "$Element$Constant"
}

$Strings

导致以下输出:

Element
Element
...

根据数组在 Powershell 中不可变的提示,我尝试创建一个包含串联值的新数组。相同的结果。

我在这里想念什么?

您将值连接到局部变量 $Element 但这不会更改变量 $Strings

这是我的方法,将新值保存到 $ConcateStrings。通过返回连接的字符串而不将其分配给局部变量,变量 $ConcateStrings 将具有所有新值

$Constant = "somestring"
$Strings = Get-Content ".\strings.txt"

$ConcateStrings = foreach ($Element in $Strings) {
    "$Element$Constant"
}

$ConcateStrings

只是为了展示迭代数组索引的替代方法

$Constant = "somestring"
$Strings = Get-Content ".\strings.txt"

for($i=0;$i -lt $Strings.count;$i++) {
  $Strings[$i] += $Constant
}

$Strings

带有“.\strings.txt”的示例输出包含一、二、三

onesomestring
twosomestring
threesomestring