0

私は、.NET 3.5 を使用して C# でディクショナリを使用しています。オブジェクトを作成し、等値比較子を渡しました。ただし、次のコードを実行すると、期待どおりの結果が得られません。Dictionary<string, int>StringComparer.Ordinal

Dictionary<string, int> theDictionary = new Dictionary<string, int>(StringComparer.Ordinal);
theDictionary.Add("First", 1);
bool exists = theDictionary.ContainsKey("FIRST");    // equals true, when it should not

ここには何が表示されていませんか?

4

1 に答える 1

7

StringComparer.OrdinalIgnoreCaseを使用していませんか?

このコードは、C# v3.5 コンパイラで false を出力します。

using System;
using System.Collections.Generic;

    static class Program
    {
      static void Main()
      {
        Dictionary<string, int> theDictionary = new Dictionary<string, int>(StringComparer.Ordinal);
        theDictionary.Add("First", 1);
        bool exists = theDictionary.ContainsKey("FIRST");

        Console.WriteLine(exists);
      }
    }
于 2012-05-25T21:16:47.750 に答える