Dictionary with Func as key
I am wondering if this is a sane choice of key for a dictionary? What I want to do is use an expression as the key in a dictionary, something like: 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 The idea being this is a cleaner way than having big if-else or switch statements. Does this make sense? Will it work? Is there an simpler way? Mike Zboray No, C# constructs a new delegate instance whenever a lambda is used so you wouldn't be