Gor*_*don 5 powershell pipeline
我正在使用数组列表来构建日志项序列以供稍后记录。工作起来很不错,但是 Add 方法将当前索引发送到管道。我可以通过将其发送到 $null 来解决这个问题,如下所示
$strings.Add('junk') > $null
Run Code Online (Sandbox Code Playgroud)
但我想知道是否有某种机制可以全局更改 Add 方法的行为。现在我确实有数百次> $null
重复,这真是丑陋。尤其是当我忘记一个的时候。
我真的很想看到某种全局变量来抑制所有自动流水线。在编写大型脚本时,我想有意发送到管道,因为意外的自动发送到管道是我的总错误的很大一部分,也是最难发现的。
因此,这个线程的复活让我“回答”了我自己的问题,因为我很久以前就发现ArrayList
s 已被弃用,并且Collections.Generic.List<T>
是首选的解决方案,正如 @santiago-squarzon 今天指出的那样。
所以,对于任何想知道的人
$log = [System.Collections.Generic.List[String]]::new()
Run Code Online (Sandbox Code Playgroud)
或者旧的 New-Object 方式
$log = New-Object System.Collections.Generic.List[String]
Run Code Online (Sandbox Code Playgroud)
实例化集合,然后高兴地
$log.Add('Message')
Run Code Online (Sandbox Code Playgroud)
无需担心管道污染。您还可以使用以下命令一次添加多个项目
$log.AddRange()
Run Code Online (Sandbox Code Playgroud)
范围是另一个列表,如果您先转换为列表,则范围是一个数组。你可以插入一条消息,比如
$log.Insert(0, 'Message')
Run Code Online (Sandbox Code Playgroud)
所以是的,有很大的灵活性并且没有污染。获胜。
归档时间: |
|
查看次数: |
1811 次 |
最近记录: |