字符串(不只是字母)到ConsoleKey C#

时间:2019-03-16 14:41:24

标签: c# console-application

所以我需要将字符串转换为ConsoleKey ...

是这样的:

string ch = "a";
ConsoleKey ck = (ConsoleKey)Convert.ToChar(ch);

但是如果字符串类似于“ UpArrow”(该字符串来自ReadKey输入并保存到txt文件)怎么办

请帮助。

1 个答案:

答案 0 :(得分:1)

您可以使用Enum.ParseEnum.TryParse将字符串转换为枚举成员。

不幸的是,API不是通用的,因此您必须多次指定类型:

ConsoleKey key1 = (ConsoleKey)Enum.Parse(typeof(ConsoleKey), "UpArrow");

如果字符串不是枚举的成员,则以上内容将引发异常。为了防止这种情况,您可以使用:

if (Enum.TryParse("UpArrow", out ConsoleKey key2))
{
    // use 'key2' in here
}