По умолчанию словарь не учитывает регистр. Но вы можете реализовать свой собственный вариант, чтобы сделать его нечувствительным. (Я могу ошибаться в этом: D)
У меня возникла та же проблема со словарем, но затем, после многих попыток реализации IEquality, я окончательно свел счёт с LINQ.
string k = customers.Where(c => c.Key.Equals(valueToSearch, StringComparison.OrdinalIgnoreCase)).FirstOrDefault().Key;
if (!string.IsNullOrEmpty(k) && k.ToUpper() == valueToSearch.ToUpper())
{
// Do some thing
}
Надеюсь, это поможет кому-нибудь в будущем.
Санджай Залке