【问题标题】:Why does using an ArrayList prints numbers?为什么使用 ArrayList 会打印数字?
【发布时间】:2020-10-09 05:30:31
【问题描述】:

输入数据:

(00:00) Pedro Del Mar & Beatsole - Pianophoria (Original Mix) https://www.beatport.com/track/pianophoria-original-mix/5970941 [黑洞记录] 03:01 新世界 - Ushio (Original Mix) https://www.beatport.com/track/ushio-original-mix/6021871 [Abora录音]

PowerShell 代码:

$readData = Get-Content "C:\Users\SomeUser\inputData - Alternate - 2.txt"
$ArrayList = New-Object System.Collections.ArrayList


function removeBrackets([string]$removeBrackets){


if($removeBrackets.Contains(":") -and ($removeBrackets.IndexOf(":")  -eq 2)){
           $subString = $removeBrackets.Substring(7-1);
           $ArrayList.Add($subString)
          
   
  }
elseif($removeBrackets.Contains(":") -and ($removeBrackets.IndexOf(":")  -eq 3)){ 
         $subString = $removeBrackets.Substring(7+1);
         $ArrayList.Add($subString)
      
     }

}

for($i=0; $i -le $readData.Length; $i++){

     
     removeBrackets($readData[$i])


}

for($a=0; $a -le $ArrayList.Count; $a++){

   Write-Output $ArrayList[$a]
}

输出:

0 1 Pedro Del Mar & Beatsole - Pianophoria (Original Mix) 新世界 - Ushio (Original Mix)

问题:

我创建了一个从文本文件中过滤掉数据的脚本。它从轨道中删除 HTTP 链接和时间。然后它将字符串添加到数组列表中

为什么打印数组列表会产生0,1?如何防止这种情况发生?

【问题讨论】:

    标签: powershell arraylist


    【解决方案1】:

    ArrayList.Add 方法始终返回您添加的新项目的索引:

    PS > $ArrayList = New-Object System.Collections.ArrayList
    PS > $ArrayList.Add('a')
    0
    PS > $ArrayList.Add('b')
    1
    PS >
    

    您可以通过强制转换为 [void] 来抑制此输出:

    PS > $ArrayList = New-Object System.Collections.ArrayList
    PS > [void]$ArrayList.Add('a')
    PS >
    

    或者通过将输出重定向到$null:

    PS > $ArrayList = New-Object System.Collections.ArrayList
    PS > $ArrayList.Add('a') > $null
    PS > 
    

    【讨论】:

      【解决方案2】:

      ArrayList.Add() 返回添加值的索引。通过重定向到 $null 或强制转换为 [void] 来消除此输出。

      $ArrayList.Add($subString) > $null
      

      [void]$ArrayList.Add($subString)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-08-16
        • 1970-01-01
        • 2021-09-22
        • 2020-05-19
        • 1970-01-01
        • 2021-04-05
        • 2015-10-10
        相关资源
        最近更新 更多