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);
}
}