Title: Rule request: AvoidArrayList · Issue #2147 · PowerShell/PSScriptAnalyzer · GitHub
Open Graph Title: Rule request: AvoidArrayList · Issue #2147 · PowerShell/PSScriptAnalyzer
X Title: Rule request: AvoidArrayList · Issue #2147 · PowerShell/PSScriptAnalyzer
Description: Aside from the important remark: Important We don't recommend that you use the ArrayList class for new development. Instead, we recommend that you use the generic List class. The ArrayList class is designed to hold heterogeneous collecti...
Open Graph Description: Aside from the important remark: Important We don't recommend that you use the ArrayList class for new development. Instead, we recommend that you use the generic List class. The ArrayList class is...
X Description: Aside from the important remark: Important We don't recommend that you use the ArrayList class for new development. Instead, we recommend that you use the generic List class. The ArrayList clas...
Opengraph URL: https://github.com/PowerShell/PSScriptAnalyzer/issues/2147
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Rule request: AvoidArrayList","articleBody":"Aside from the [important remark](https://learn.microsoft.com/en-us/dotnet/api/system.collections.arraylist#remarks):\n\n\u003e [!Important]\n\u003e\n\u003e We don't recommend that you use the ArrayList class for new development. Instead, we recommend that you use the generic [List\u003cT\u003e](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1?view=net-6.0) class. The [ArrayList](https://learn.microsoft.com/en-us/dotnet/api/system.collections.arraylist?view=net-6.0) class is designed to hold heterogeneous collections of objects. However, it does not always offer the best performance. Instead, we recommend the following:\n\u003e \n\u003e For a heterogeneous collection of objects, use the `List\u003cObject\u003e` (in C#) or List(Of Object) (in Visual Basic) type.\n\u003e For a homogeneous collection of objects, use the [`List\u003cT\u003e`](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1?view=net-6.0) class. See [Performance Considerations](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1?view=net-6.0#performance-considerations) in the [List\u003cT\u003e](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1?view=net-6.0) reference topic for a discussion of the relative performance of these classes. See [Non-generic collections shouldn't be used](https://github.com/dotnet/platform-compat/blob/master/docs/DE0006.md) on GitHub for general information on the use of generic instead of non-generic collection types.\n\nThe `ArrayList.Add` method returns an index of the added element which often unintendedly pollutes the PowerShell pipeline and causes unexpected issues, see e.g.: \n* [Powershell ArrayList magically inserts a zero [duplicate]](https://stackoverflow.com/questions/52641400/powershell-arraylist-magically-inserts-a-zero)\n* [Unexpected array size [duplicate]](https://stackoverflow.com/questions/58604984/unexpected-array-size)\n\nNote that [an `ArrayList` is not typesafe](https://stackoverflow.com/a/17984540/1701026) which is consistent with PowerShell as a loosely language.\nAlternatives for a `ArrayList` type are:\n* `[object[]]` which is also loosely *but not sizable*, or\n* `[System.Collections.Generic.List[Object]]` with is both sizable and loosely.","author":{"url":"https://github.com/iRon7","@type":"Person","name":"iRon7"},"datePublished":"2025-12-18T15:26:23.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":0},"url":"https://github.com/2147/PSScriptAnalyzer/issues/2147"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:8480faa4-48c6-8045-8dff-3bd0eacd9c23 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | 840A:3CDF6F:1148F2D:1766482:6964A6DA |
| html-safe-nonce | ad7a11d3a96629ce72290f260002ea91944cc2126a3fd20368430c5e0e180708 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI4NDBBOjNDREY2RjoxMTQ4RjJEOjE3NjY0ODI6Njk2NEE2REEiLCJ2aXNpdG9yX2lkIjoiODYxNTA2MjQ1MDI1NzMwNzM1NCIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | 430c024be020bb6f7d52186d4f8160f82914d8aea626904649a6956800486076 |
| hovercard-subject-tag | issue:3743633381 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/PowerShell/PSScriptAnalyzer/2147/issue_layout |
| twitter:image | https://opengraph.githubassets.com/70f403d05c84edf44e7e5d3d8b59c41ad5bceb77d777a916d210c10bdf9f9a5d/PowerShell/PSScriptAnalyzer/issues/2147 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/70f403d05c84edf44e7e5d3d8b59c41ad5bceb77d777a916d210c10bdf9f9a5d/PowerShell/PSScriptAnalyzer/issues/2147 |
| og:image:alt | Aside from the important remark: Important We don't recommend that you use the ArrayList class for new development. Instead, we recommend that you use the generic List class. The ArrayList class is... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | iRon7 |
| hostname | github.com |
| expected-hostname | github.com |
| None | 15579c46431b7fd25941c3b09010f74fd1890c7a35226839bbbf40ce70fb3057 |
| turbo-cache-control | no-preview |
| go-import | github.com/PowerShell/PSScriptAnalyzer git https://github.com/PowerShell/PSScriptAnalyzer.git |
| octolytics-dimension-user_id | 11524380 |
| octolytics-dimension-user_login | PowerShell |
| octolytics-dimension-repository_id | 33149177 |
| octolytics-dimension-repository_nwo | PowerShell/PSScriptAnalyzer |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 33149177 |
| octolytics-dimension-repository_network_root_nwo | PowerShell/PSScriptAnalyzer |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 499abb347cb197601d399c346cfeb4b3fa135d5c |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width