【问题标题】:Powershell Arraylist RemoveAt not workigPowershell Arraylist RemoveAt 不起作用
【发布时间】:2020-08-11 08:32:35
【问题描述】:

我正在使用 powershell Arraylist 来保存通过拆分字符串生成的列表。当我尝试使用以下代码删除列表中的第一项时,整个列表将变为空。

[System.Collections.ArrayList]$teststringlist=New-Object System.Collections.ArrayList
$teststring ="Test1,Test2,Test3"
$teststringlist = $teststring.Split(",")
$teststringlist=$teststringlist.RemoveAt(0)

如何在 powershell 中删除 Arraylist 索引 0 处的第一项

【问题讨论】:

  • 请仅使用所使用的语言标记您的问题,不要使用多个标记
  • 请试试这个see this answer

标签: powershell


【解决方案1】:

RemoveAt 不返回值(参见https://docs.microsoft.com/en-us/dotnet/api/system.collections.arraylist.removeat?view=netcore-3.1)所以而不是

$teststringlist=$teststringlist.RemoveAt(0)

这样做:

$teststringlist.RemoveAt(0)

【讨论】:

  • 其实这是一个更好的答案。
【解决方案2】:

您可以使用Select-Object cmdlet 和-Skip 参数执行此操作:

$teststringlist = $teststringlist | Select-Object -Skip 1

您也可以这样做:

$teststringlist[1 .. ($a.teststringlist)]

【讨论】:

  • Select-Object -Skip 1 总是跳过第一个?。你知道为什么 RemoveAt 不起作用。我使用 Arralist 因为 ArrayList 不固定,你可以使用从它们中删除元素Remove() 方法
  • 它也可以工作,但它不返回任何东西,所以当你用 return 方法重新分配它时,它是空的。是的,-skip 1 总是跳过第一个
猜你喜欢
  • 2012-10-07
  • 2018-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-13
相关资源
最近更新 更多