从枚举中的用户收集数据

本文关键字:数据 用户 枚举 | 更新日期: 2023-09-27 17:59:21

所以我正在学习C#,目前正试图学习一个相当简单的程序,并使其稍微复杂一点。然而,我的谷歌技能并没有完全发挥作用。我希望能得到一点帮助和解释,因为网上解释它的一切都是从专家的角度出发,而不是从傻瓜的角度出发。

所以基本上有一个声明的枚举器类型,我知道你可以插入代码行,这样开关就可以根据定义或选择的内容做出决定。然而,我希望这种情况以交互方式发生,这样用户就可以从枚举列表中输入一个值,然后让switch函数发挥其魔力。我尝试了几种不同的方法,但都不起作用。请注意,我是一名perl、PHP和PowerShell程序员,我已经尝试了一些在所有这些程序中都有效的东西,但我不能完全正确地工作。任何人,下面是代码。非常感谢您的帮助!!

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication3
{
class Program
{
    enum Color
    {
        red,
        orange,
        blue,
        black,
        white,
        green,
        purple,
        yellow
    }
    static void Main(string[] args)
    {
       Color favorite = Color + Console.ReadLine();
        switch (favorite)
        {
            case Color.red:
                Console.WriteLine("You chose red!");
                break;
            case Color.orange:
                Console.WriteLine("you chose orange!!!!!!");
                break;
            case Color.blue:
                Console.WriteLine("YOU CHOSE BLUEEEE!!");
                break;               
            case Color.black:
                Console.WriteLine("you chose black");
                break;
            case Color.white:
                Console.WriteLine(" you chose white!")
                    break;
            case Color.green:
                Console.WriteLine("you chose green!!!!!");
                break;
            case Color.purple:
                Console.WriteLine("you chose purple!!");
                break;
            case Color.yellow:
                Console.WriteLine("you chose yellow!!!");
                break;
        }
        Console.ReadLine();


    }
}

}

从枚举中的用户收集数据

您正在寻找Enum.TryParse方法。它将字符串转换为枚举类型,如果字符串无法转换为枚举,则返回false。

Color favorite 
if (Enum.TryParse(Console.ReadLine(), out favorite)) {
   // You're switch goes where
}
else {
   Console.WriteLine("That's not a color!");
}

如果您的输入形式为"红色"、"橙色"等,则可以使用Enum.Passe():

var favorite = (Color)Enum.Parse(typeof(Color), Console.ReadLine());

注意,如果用户输入了一个不好的颜色,它会抛出异常,在这种情况下,你可以使用TryParse。

更改收藏夹的分配。

var input = Console.ReadLine();
var favorite = (Color)Enum.Parse(typeof(Color), input);