Arrays in friendly PowerShell syntax, but using faster .NET collections under the hood.
ArrayList's goal is to reduce usage of @() and += in PowerShell scripts. That topic has been written about plenty: search "powershell array performance" for details. ArrayList provides commands that follow the same usage pattern, and hopefully are easy enough to remember that you no longer use @() just because you can't remember the .NET syntax.
# Add 100,000 items to a new Generic.List collection
$100k = New-ArrayList
Get-Help Add-ArrayObject -Examples
1..100000 | Add-ArrayObject -Array $100k
$100k | Select-Object -First 3 -Last 3
# Use a type-safe Generic.List<T> collection
### int, string, PSCustomObject...bring your own type
$10 = New-ArrayList -Type int
1..10 | Add-ArrayObject $10
# Adding a string fails
'test' | Add-ArrayObject $10
# Remove multiple items at once, instead of the .NET method stopping after the first instance
3,3,3 | Add-ArrayObject $10
3 | Remove-ArrayObject $10
"New-ArrayList" will default to the [System.Collections.Generic.List<System.Object>] type.
Using "New-ArrayList -Type string" will ensure your collection only accepts [string] objects.
"New-ArrayList -Legacy" will create an ArrayList, but note that in .NET/C# land,
[System.Collections.Generic.List<T>] is preferred. (see below for links)
Q: Why didn't you _? A: Choose one of three: 1. No need for 100% coverage at release; you can help contribute functions to wrap other methods you use often 2. It's entirely possible (likely?) I didn't know you could do it _that way_ 3. Following 2, there are some interesting quirks when you start diving into abstracting List collections On ArrayList vs. List<T>: https://msdn.microsoft.com/en-us/library/system.collections.arraylist(v=vs.110).aspx#Anchor_6 https://stackoverflow.com/questions/2309694/arraylist-vs-list-in-c-sharp On retaining the correct List type and still reporting the correct object count: https://serverfault.com/questions/708832/how-to-cast-as-arraylist-preset-data-in-param-block-and-return-as-arraylist https://connect.microsoft.com/PowerShell/feedback/details/1622532 On removal of all member objects, instead of only the first instance: https://www.sapien.com/blog/2014/11/18/removing-objects-from-arrays-in-powershell/ KEYWORDS arraylist, list, genericlist, array, collection, append