Dicionário com Func como chave
Eu estou querendo saber se esta é uma escolha sensata de chave para um dicionário? O que eu quero fazer é usar uma expressão como chave em um dicionário, algo como:
var map3 = new Dictionary<Func<int, bool>, int>();
map3.Add((x) => x % 2 == 0, 1);
map3.Add((x) => x % 10 == 0, 2);
// ...
var key = map3.Keys.SingleOrDefault(f => f(2));
// key = (x) => x % 2
// map3[key] = 1
A ideia sendo esta é uma maneira mais limpa do que ter grandes instruções if-else ou switch.
Isso faz sentido? será que vai dar certo? Existe uma maneira mais simples?