怎么根据一个值获取它在枚举里的值?

比如:publicenumcolor{绿色=1,红色=2,白色=3};但是我只有一个字符串stringstr="红色";我想获取它在枚举中的值,也就是2,怎么获取?... 比如:
public enum color{绿色=1,红色=2,白色=3};
但是我只有一个字符串 string str="红色"; 我想获取它在枚举中的值 ,也就是2,怎么获取?
展开
 我来答
____ku___
推荐于2017-09-05 · TA获得超过2万个赞
知道小有建树答主
回答量:2041
采纳率:96%
帮助的人:268万
展开全部
  publicenumtestenum { aa, bb, cc, dd };

foreach (testenum item in Enum.GetValues(typeof(testenum)))
{

}
Enum.GetValues(typeof(枚举的名称));可以获得指定枚举的枚举值。
Enum.GetNames(typeof(枚举的名称));可以获得指定枚举的枚举名称。
zse144438
推荐于2017-10-13 · TA获得超过313个赞
知道答主
回答量:191
采纳率:0%
帮助的人:143万
展开全部
public enum color { red = 1, green = 2, blue = 3 };
private void Get(string str)
{
Type typ = typeof(color);
foreach (string s in Enum.GetNames(typ))
{
if (s == str)
{
MessageBox.Show(Enum.Format(typ, Enum.Parse(typ, s), "d"));
}
}
}

你也可以不要遍历
Type typ = typeof(color);
MessageBox.Show(Enum.Format(typ, Enum.Parse(typ, str), "d"));
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
89801860
2011-11-15 · TA获得超过139个赞
知道小有建树答主
回答量:186
采纳率:100%
帮助的人:129万
展开全部
Convert.ToInt32(color.红色) 就可以获取到他的值了,
但是你这个是有问题的,在枚举中是不能使用中文的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
15092083415
2011-11-15
知道答主
回答量:11
采纳率:0%
帮助的人:5.9万
展开全部
int n = 0;
string str = "绿色";
if (str == color.绿色.ToString())
n = 1;
else if (str == color.红色.ToString())
n = 2;
else if (str == color.白色.ToString())
n = 3;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
蓝色不倒翁2011
2011-11-15 · 超过12用户采纳过TA的回答
知道答主
回答量:48
采纳率:0%
帮助的人:37.5万
展开全部
swicth(color_enum){
case color_enum.绿色:
break;
}

====
我猜你是想通过一种更好玩的方式来获取它的值。 但我觉得
代码这样写会比较清晰。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式