簡體   English   中英

Powershell數組未清除

[英]Powershell array is not cleared

我的源代碼:

# $arr = @(); results in same behaviour
$arr = New-Object System.Collections.ArrayList;

$arr.Count;
$arr += "z";

$arr.Count;
$arr.Clear();
$arr.Count;

輸出:

0
1
1

當你執行+= ,Powershell會做一些數組轉換$arr.Add("z") ,所以簡單的解決方案是執行$arr.Add("z") 然后$arr.Clear()會像你期望的那樣行事。

澄清:

  1. @()是一個Powershell數組。 它使用+= ,但你無法Clear它。 (但是,您可以再次執行$arr = @()將其重置為空數組。)
  2. ArrayList是.NET集合。 它使用.Add ,你可以Clear它,但出於某種原因,如果你+=它,Powershell會做一些奇怪的數組強制。 (如果有任何專家對此發表評論,真棒。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM