我的代码中有以下声明
string str = ((int)(UserRating)Enum.Parse(typeof(UserRating), ques.UserResponse)).ToString()
我需要在str
中存储一个数字。类似于"1", "2" or "3"
。
我的Enum声明如下:
public enum UserRating
{
One = 1, Two, Three, Four, Five
}
完整陈述如下:
UserResponse = (ques.Type == UserQuestionType.Rating ? ((int)Enum.Parse(typeof(UserRating), ques.UserResponse)).ToString() : ques.UserResponse)
答案 0 :(得分:2)
试试这个:
string str = ((int)Enum.Parse(typeof(UserRating), ques.UserResponse)).ToString();
您可以直接将枚举值转换为int
。
答案 1 :(得分:2)
如果你想从枚举中获得“1”,请尝试:
UserRating.One.ToString("d");
如果你想从你的枚举中获得“一个”(或许更容易匹配),只需省略ToString()
中的参数:
UserRating.One.ToString();
你的完整陈述改变如下:
UserResponse = (ques.Type == UserQuestionType.Rating ?
((UserRating)Enum.Parse(typeof(UserRating), ques.UserResponse)).ToString("d") : ques.UserResponse);
但一定要在类型等于UserQuestionType.Rating
的问题上进行测试(或者将任何总是真实的陈述用于测试)
答案 2 :(得分:1)
有时使用多行是有帮助的:
UserRating userResponseEnum = (UserRating)Enum.Parse(typeof(UserRating), ques.UserResponse);
int userRatingValue = (int) userResponseEnum;
string str = userRatingValue.ToString();