You can create a list of delegate-instances, using an appropriate delegate-type for each method.
var list = new List
{
new Func (X),
new Func (Y)
};
dynamic result = list[0](1, 2); // like X(1, 2)
dynamic result2 = list[1](5, 10, "hello") // like Y(5, 10, "hello")