I have a collection of strings. For example,
string[] coll={\"1\", \"2\", \"3\" ...\"100\"...\"150\"...}
and I have respective methods for th
Solution 1:
Use a delegate mapping. This is the faster solution.
private static Dictionary mapping =
new Dictionary
{
{ "1", MethodOne },
// ...
{ "150", Method150 }
};
public void Invoker(string selector)
{
Action method;
if (mapping.TryGetValue(selector, out method)
{
method.Invoke();
return;
}
// TODO: method not found
}
Solution 2:
Use reflection. This is slower and is appropriate only if your methods have strict naming (eg. 1=MethodOne 150=Method150 will not work).
public void Invoker(string selector)
{
MethodInfo method = this.GetType().GetMethod("Method" + selector);
if (method != null)
{
method.Invoke(this, null);
return;
}
// TODO: method not found
}