In the following Powershell statements, why do I need the comma to instantiate a .Net array list or stack from the Powershell Object[]?
$list = "A","B","C"
$stack = New-Object System.Collections.Stack(,$list)
Why do I need it and what does the comma mean?
The comma is an array operator in PowerShell.
The problem is PowerShell is unwrapping your array into arguments for the overload. Adding a comma is keeping it as an array.
Without the comma you get this error:
From Windows PowerShell in Action (Second Edition):
The comma operator always wraps its argument value in a new one-element array.