为什么反转arraylist没有显示任何结果?

时间:2018-03-14 14:04:42

标签: powershell arraylist

我正在尝试反转队列并将其作为堆栈。但它没有显示任何输出。

$queue = [System.Collections.ArrayList]@()

$queue.Add("Object1") | Out-Null
$queue.Add("Object2") | Out-Null
"=========== Queue ================"
foreach ($i in $queue) {
    $i
}

$stack = $queue.Reverse()
"=========== stack ================"
foreach ($i in $stack) {
    $i
}

我期待结果如下

=========== Queue ================
Object1
Object2
=========== stack ================
Object2
Object1

但是堆栈结果没有给出任何值,如下所示

=========== Queue ================
Object1
Object2
=========== stack ================

这里有什么问题?如何纠正?

1 个答案:

答案 0 :(得分:9)

.Reverse()不会返回一个对象,它会反转调用它的对象的元素:

$queue = [System.Collections.ArrayList]@()

$queue.Add("Object1") | Out-null
$queue.Add("Object2") | Out-null
"=========== Queue ================"
foreach ($i in $queue){
    $i
}

$queue.Reverse()  # <<<<<<<<<< Reverse $queue *in place*.
"=========== stack ================"
foreach($i in $queue)
{
    $i
}