我正在尝试使用PowerShell反转ArrayList集合。请看示例代码:
[System.Collections.ArrayList]$arr = @()
$arr.Add("Apple") | Out-Null
$arr.Add("Orange") | Out-Null
$arr.Add("Banana") | Out-Null
# Print the first element
$arr[0]
# Reverse the array
[array]::Reverse($arr)
# Print the first element
$arr[0]
输出为Apple
Apple
--我期望输出为Apple
Banana
这是怎么了?
1条答案
按热度按时间7gcisfzg1#
您正在使用静态Array.Reverse()方法,该方法可以对数组进行操作,但不能对ArrayList进行操作,因为ArrayList不继承Array。
你可以使用内置在ArrayList中的反向方法:
此外,如果列表中的所有对象都是相同的类型,那么最好使用泛型列表而不是ArrayList。这使得列表中的对象类型变得明确,并防止以后需要强制转换任何东西。
也可以选择使用标准数组。如果您不打算在它上面进行插入或删除操作,那么最好使用。如果您确实计划执行这些操作,那么通用列表在性能和内存使用方面要上级得多。