Dictionary.ContainsKey StringComparer.Ordinal

Я работаю со словарем в C# с.NET 3.5. Я создал 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

Что я здесь не вижу?

1 ответ

Вы уверены, что не использовали StringComparer.OrdinalIgnoreCase?

Этот код выводит для меня false с помощью компилятора C# v3.5:

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);
      }
    }
Другие вопросы по тегам