UseLiteralInitializerForHashtable
Severity Level: Warning
Description
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.
How to Fix
Create the hashtable using a literal hashtable expression.
Example
Wrong
$hashtable = [hashtable]::new()
Wrong
$hashtable = New-Object -TypeName hashtable
Correct
$hashtable = @{}
Feedback
https://aka.ms/ContentUserFeedback.
Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see:Submit and view feedback for