Powershell 为什么反转arraylist不会显示任何结果?
我正在尝试反转队列并使其成为堆栈。但它没有显示任何输出Powershell 为什么反转arraylist不会显示任何结果?,powershell,arraylist,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() "=========== s
$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 ================
这里怎么了?如何更正它?.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
}
$queue=[System.Collections.ArrayList]@()
$queue.Add(“Object1”)| Out null
$queue.Add(“Object2”)| Out null
“===================================================================”
foreach($队列中的i){
$i
}
$queue.Reverse()#为了将来的参考,$queue.Reverse
会显示Reverse()
的重载签名,包括它总是返回void
或Get Member-InputObject$queue这一事实。@EBGreen:事实上,Get Member-InputObject$queue Reverse
也会显示它,但是,$queue.Reverse
(除了更短之外)的优点是,每个重载都在自己的行中,这更容易阅读,特别是在有许多重载的情况下。@EBGreen但是在反转队列之后,仍然将其命名为queue是没有意义的。无法从此集合“队列”中分配给另一个名为“stack”的集合吗?如果需要,请确定。只需将其反转,然后将其分配给另一个变量。或者指定它,然后反转另一个。