【发布时间】:2013-08-06 02:12:21
【问题描述】:
我有一个枚举,其中包含数百个条目。
我将获取枚举值作为字符串。有没有办法将字符串转换为枚举值?否则,我最终会使用数百个 if 语句。
考虑
enum Colors { Red, Green, Blue, Yellow ... } there are more than 100 entries
我将在字符串变量中获得"Red",
String color = "Red"; // "Red" would be generated dynamically.
通常我们通过以下方式访问枚举,
Colors::Red, Colors::Blue 等等...
有什么方法可以让我们以这样的方式访问它:
Colors::color; // i.e enumtype::stringVariable
在这里的许多帖子中,我们都可以使用 map,但是在构建 map 时,我们最终会使用数百个 ifs。
有什么办法可以避免吗?
【问题讨论】:
-
不,不是那样的。另外,你说的不是 C。
-
避免这种情况的方法是使用实际的表格。
-
某种意义上的实际表??考虑到 c/cpp。
-
嗯,一种简单的方法是将每个名称放入一个数组中,假设它们从 0 开始是连续的。
-
您的问题被标记为 C,但
Colors::color是 C 中的语法错误,并且没有名为String的预定义类型。您使用什么语言?是 C# 吗?