Se você estiver usando um dicionário (com chaves de string) em .Net e precisar chamar .ToLower () ou .ToUpper () em sua chave, lembre-se de que você pode criar esse dicionário com letras maiúsculas irrelevantes:
new Dictionary<string, object>(StringComparer.OrdinalIgnoreCase);
Vejo isso mais útil quando uma string é a chave, mas tudo o que você realmente precisa aqui é uma instância de IEqualityComparer <T>, onde T é o tipo da sua chave. No exemplo acima, estou apenas aproveitando algo já integrado à estrutura.