コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【C#】Dictionary のキーで文字列の大文字と小文字を区別しない方法

ソースコード

using System;
using System.Collections.Generic;

public static class Program
{
    private static void Main()
    {
        // デフォルトでは大文字と小文字は区別される
        var table1 = new Dictionary<string, int>();

        table1.Add( "sample", 1 );
        table1.Add( "Sample", 1 ); // OK
        table1.Add( "SAMPLE", 1 ); // OK
        
        // StringComparer.OrdinalIgnoreCase を渡すことで
        // 大文字と小文字が区別されないようになる
        var table2 = new Dictionary<string, int>( StringComparer.OrdinalIgnoreCase );

        table2.Add( "sample", 1 );
        table2.Add( "Sample", 1 ); // NG
        table2.Add( "SAMPLE", 1 ); // NG
    }
}
  • Dictionary はデフォルトでは大文字と小文字は区別される
  • StringComparer.OrdinalIgnoreCase を渡すことで
    大文字と小文字が区別されないようになる