i want to use Dictionary and Action to call some static method
here is my code:
public class  Works
{
    public static void DoWorkA()
    {
        Thread.Sleep(1000);
        Console.WriteLine("Doing Work A");
    }
    public static void DoWorkB()
    {
        Thread.Sleep(2000);
        Console.WriteLine("Doing Work B");
    }
    public static void DoWorkC()
    {
        Thread.Sleep(3000);
        Console.WriteLine("Doing Work C");
    }
}  
and this is is my main method
 try
        {
            var DoJob = new Dictionary<int, Action>();
            DoJob.Add(1, () => Works.DoWorkA());
            DoJob.Add(2, () => Works.DoWorkB());
            DoJob.Add(3, () => Works.DoWorkC());
            var input = Console.Read();
            var job = DoJob[input];
        }
        catch(Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
        Console.ReadKey();  
i use foreach to iterate keys and keys are exist 
 foreach (var item in DoJob)
            {
                Console.WriteLine($"Item {item.Key} has Value {item.Value}");
            }  
but when i want to access key using input value i get exception
whats wrong?

