Diccionario con Func como tecla

Me pregunto si esta es una elección sensata de clave para un diccionario. Lo que quiero hacer es usar una expresión como la clave en un diccionario, 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

La idea es que esta es una forma más limpia que tener declaraciones grandes en caso de "si no" o "switch".

¿Esto tiene sentido? ¿Funcionará? ¿Hay alguna forma más sencilla?

Respuestas a la pregunta(2)

Su respuesta a la pregunta