description | ms.custom | ms.date | ms.topic | title |
---|---|---|---|---|
Create hashtables with literal initializers |
PSSA v1.21.0 |
10/18/2021 |
reference |
UseLiteralInitializerForHashtable |
Severity Level: Warning
Creating a hashtable using [hashtable]::new()
or New-Object -TypeName hashtable
without passing
a IEqualityComparer
object to the constructor creates a hashtable where the keys are looked-up in
a case-sensitive manner. However, PowerShell is case-insensitive in nature and it is best to create
hashtables with case-insensitive key look-up.
This rule is intended to warn the author of the case-sensitive nature of the hashtable when created
using the new
method or the New-Object
cmdlet.
Create the hashtable using a literal hashtable expression.
$hashtable = [hashtable]::new()
$hashtable = New-Object -TypeName hashtable
$hashtable = @{}