This is a great use case for the Action
generic delegate.
List<Action> functions = new List<Action>();
functions.Add(Move);
foreach (Action func in functions)
func();
If you need parameters, I would use lambdas to abstract them away:
List<Action> functions = new List<Action>();
functions.Add(Move);
functions.Add(() => MoveTo(1, 5));
foreach (Action func in functions)
func();
A delegate is akin to function pointers from C++, it holds what a function "is" (not a return value like in your example) so you can call it just like a regular function. The Action generic delegate takes no parameters and returns nothing, so it is ideal for generic "call these functions".
MSDN for Action: Action Delegate
For more on the different types of delegates provided by.NET: https://stackoverflow.com/a/567223/1783619