C# 有没有简单的方法将这些字符串值转换为枚举?

C# 有没有简单的方法将这些字符串值转换为枚举?,c#,C#,我正在开发一个股票交易应用程序,它利用经纪人的dll文件和命令通过API发出请求。对我来说,最大的挑战至少是弄清楚如何为API提供输入所需的各种数据类型。现在我正在编写一些测试代码,可以购买1股股票。许多必要的转换,我已经能够弄清楚,但枚举继续逃避我 InsertOrderRequest insertOrderRequest = new InsertOrderRequest(); insertOrderRequest.m_accountNumber = "0000

我正在开发一个股票交易应用程序,它利用经纪人的dll文件和命令通过API发出请求。对我来说,最大的挑战至少是弄清楚如何为API提供输入所需的各种数据类型。现在我正在编写一些测试代码,可以购买1股股票。许多必要的转换,我已经能够弄清楚,但枚举继续逃避我

        InsertOrderRequest insertOrderRequest = new InsertOrderRequest();
        insertOrderRequest.m_accountNumber = "00000001";
        insertOrderRequest.m_symbolId = Convert.ToUInt64(1900028);
        insertOrderRequest.m_quantity = Convert.ToDouble(1);
        insertOrderRequest.m_orderType = "Market"; //Needs to be enum
        insertOrderRequest.m_timeInForce = "Day"; //Needs to be enum
        insertOrderRequest.m_action = "Buy"; //Needs to be enum
        insertOrderRequest.m_primaryRoute = "AUTO";

您可以看到我标记的3行需要为enum。现在我进入了对象浏览器,确定Market、Day和Buy是合适的响应,但它们不是正确的数据类型。是否有一行类似于Convert.ToDouble的代码将这些字符串转换为枚举?谢谢。

如果字符串与枚举中的名称匹配,您可以按如下方式解析它们:

(OrderType) Enum.Parse(typeof(OrderType), "Market");
或者,您也可以使用一个版本。两个版本都有重载,在匹配名称时忽略大小写


如果字符串与枚举中的名称不匹配,则必须创建自己的映射器。可以使用一个简单的开关案例来完成。

您定义了OrderType、TimeInfo和Action的枚举了吗?你也可以显示它吗?API需要一个字符串或一个int值?您的程序可以对其中任何一个使用枚举。可能的重复请参见“可能的重复”中的“我的答案”,您可以使用枚举进行来回转换。VS似乎很喜欢它。让我完成测试顺序的设置,然后看看它是否执行。谢谢!