如何将 console.readline 转换为枚举?

How can I convert console.readline to enum?

我有这个星期几的枚举。我有变量“工作日”将其转换为枚举类型。当我想通过键盘输入日期时,出现错误“无法将字符串类型隐式转换为 NameDia.CS.Program.Days”

**namespace NombreDia_CS
{
    class Program
    {
        enum Dias
        {
            Domingo = 1,
            Lunes,
            Martes,
            Miercoles,
            Jueves,
            Viernes,
            Sabado
        }

        static void Main(string[] args)
        {

            Dias diaSemana;

            Console.WriteLine("Ingresar un valor numerico: ");

            diaSemana = Console.ReadLine(); //the error here
            

            
        }
    }
}**

Console.ReadLine() returns 一个字符串,因此您必须将其转换为整数,然后将其转换为枚举。

diaSemana = (Dias)Convert.ToInt32(Console.ReadLine());

或者您可以在 C# 7+ 中执行类似的操作,它将解析字符串,并使用相应的 Dias 成员

初始化 diaSemana
Enum.TryParse(Console.ReadLine(), out Dias diaSemana);

这也一样

Dias diaSemana;
Enum.TryParse(Console.ReadLine(), out diaSemana)