我正在尝试反转队列并将其作为堆栈。但它没有显示任何输出。
$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 ================
这里有什么问题?如何纠正?
答案 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
}