Dot-Net
PowerShell 和 StringBuilder
我是 PowerShell 的新手,但熟悉 .NET 類。
我
System.Text.StringBuilder在 PowerShell 腳本中使用。劇本是這樣的Function MyStringFunc([String]$line) { $r = New-Object -TypeName "System.Collections.Generic.List``1[[System.String]]"; $sb = New-Object -TypeName "System.Text.StringBuilder"; foreach ($c in $line) { $sb.Append($c); $r.Add($sb.ToString()); } return $r; } $line1 = "123"; $a = MyStringFunc $line1; $a我預計結果是
1 12 123然而結果是
Capacity MaxCapacity Length -------- ----------- ------ 16 2147483647 3 123我做錯什麼了嗎?
StringBuilder 上的一些方法(如 Append IIRC)返回 StringBuilder,因此您可以呼叫更多 StringBuilder 方法。然而 PowerShell 的工作方式是輸出所有結果(在 .NET 方法呼叫的情況下返回值)。在這種情況下,將結果轉換
[void]為忽略返回值,例如:[void]$sb.Append($c)請注意,您不需要
;在 PowerShell 中結束行。但是,如果您將多個命令放在同一行,則使用;’ 分隔這些命令。