将int(从枚举中转换)转换为string将enum值作为字符串返回

时间:2013-11-26 10:59:35

标签: c# casting enums

我的代码中有以下声明

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)

3 个答案:

答案 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();