C# 如果我需要使用用户输入的数字,如何在交换机中使用枚举?

C# 如果我需要使用用户输入的数字,如何在交换机中使用枚举?,c#,enums,C#,Enums,我只需要使用带有输入数字的枚举,但我不知道如何转换。我是否必须创建一个额外的int和convert变量 public enum Actions { delete, add, edit }; Actions ac = Actions.Parse(Concole.Readline()); switch (ac) {

我只需要使用带有输入数字的枚举,但我不知道如何转换。我是否必须创建一个额外的int和convert变量

        public enum Actions
        {
             delete,
             add,
             edit
        };
        Actions ac = Actions.Parse(Concole.Readline());
        switch (ac)
        {
            case Actions.delete:
                int k = int.Parse(Console.ReadLine());
                Delete(flights[k]);
                Console.WriteLine("");
                break;
            case 2:
                Add();
                Console.WriteLine("");
                break;
            case 3:
                Edit();
                Console.WriteLine("");
                break;
            default:
                Console.WriteLine("Incorrect number!");
                break;
        }
从这个答案中:

        public enum Actions
        {
             delete,
             add,
             edit
        };
        Actions ac = Actions.Parse(Concole.Readline());
        switch (ac)
        {
            case Actions.delete:
                int k = int.Parse(Console.ReadLine());
                Delete(flights[k]);
                Console.WriteLine("");
                break;
            case 2:
                Add();
                Console.WriteLine("");
                break;
            case 3:
                Edit();
                Console.WriteLine("");
                break;
            default:
                Console.WriteLine("Incorrect number!");
                break;
        }

您可以接收字符串并使用Enum.Parse将其转换为Enum

        public enum Actions
        {
             delete,
             add,
             edit
        };
        Actions ac = Actions.Parse(Concole.Readline());
        switch (ac)
        {
            case Actions.delete:
                int k = int.Parse(Console.ReadLine());
                Delete(flights[k]);
                Console.WriteLine("");
                break;
            case 2:
                Add();
                Console.WriteLine("");
                break;
            case 3:
                Edit();
                Console.WriteLine("");
                break;
            default:
                Console.WriteLine("Incorrect number!");
                break;
        }
Actions ac = (Actions)Enum.Parse(typeof(Actions), Console.ReadLine());

// THen use switch on ac.
    switch (ac)
    {
        case Actions.add:
            // do something here
            break;

        case Actions.delete:
            // do something here
            break;
        default:
            throw new ApplicationException("Error");
    }
默认情况下,枚举以0开头。如果要以1开头,请指定int值

        public enum Actions
        {
             delete,
             add,
             edit
        };
        Actions ac = Actions.Parse(Concole.Readline());
        switch (ac)
        {
            case Actions.delete:
                int k = int.Parse(Console.ReadLine());
                Delete(flights[k]);
                Console.WriteLine("");
                break;
            case 2:
                Add();
                Console.WriteLine("");
                break;
            case 3:
                Edit();
                Console.WriteLine("");
                break;
            default:
                Console.WriteLine("Incorrect number!");
                break;
        }
public enum Actions
        {
             delete = 1,
             add = 2,
             edit = 3
        };

为什么要在案例中混合
int
enum
值?因此,您的问题是希望用户输入一个数字,并使其对应于enum值?问题“如何将enum转换为int”已经得到回答。但是,不清楚为什么在交换机案例中混合使用enum和int。是的,我想在交换机案例中使用enum。用户必须输入数字1-3并选择他想要执行的操作。我认为从他的代码中可以明显看出,他想要将控制台输入强制转换为枚举。他只是不知道控制台给了他一个严厉的警告谢谢,这就是我需要的谢谢,这就是我需要的