Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why reversing the arraylist is not showing any result?

I am trying to reverse the queue and make it as stack. But it is not showing any output.

$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
}

I expected the result like below

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

But the stack result is not giving any value as below

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

What is wrong here? How to correct it?

like image 340
Samselvaprabu Avatar asked Sep 11 '25 00:09

Samselvaprabu


1 Answers

.Reverse() does not return an object, it reverses the elements of the object that it is called on:

$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
}
like image 120
EBGreen Avatar answered Sep 12 '25 18:09

EBGreen